Я пишу тест автоматизации с использованием двух методов для целей перехода на летнее время.Эти методы определены следующим образом:
- Настройте введенный DATETIME (через
Time.Parse
) для округления до ближайшего изменения DST - Убедитесь, что DATETIME метода изменился либо за один часназад или вперед, будь то
Time.Parse
.include?("March")
ИЛИ .include("November")
Чтобы повторить, цель этого метода состоит в том, чтобы взять дату из предыдущего метода, который я написал (который корректирует текущую дату и раундыэто до следующей даты летнего времени), определите, будет ли возвращаемое значение март или ноябрь, и ПОДТВЕРЖДАЕТ, что время прошло вперед или назад.Первый метод завершен и выглядит следующим образом:
def dst_datechange(date)
date = Time.now
case date
when (date > Time.Parse('March 11, 2018 2:00am')) && (date <
Time.parse('November 4, 2018 2:00am'))
date = Time.parse('November 4, 2018 2:00am')
when (date > Time.Parse('November 4 2018, 2:00am')) && (date <
Time.parse('March 10, 2:00am'))
date = Time.parse('March 10, 2019 2:00am')
when (date > Time.Parse('March 10, 2019 2:00am')) && (date <
Time.parse('November 3, 2019 2:00am'))
date = Time.parse('November 3, 2019 2:00am')
when (date > Time.Parse('November 3, 2019 2:00am')) && (date <
Time.parse('March 8, 2020 2:00am'))
date = Time.parse('March 8, 2020 2:00am')
when (date > Time.Parse('March 8, 2020 2:00am')) && (date <
Time.parse('November 1, 2020 2:00am'))
date = Time.parse ('November 1, 2020 2:00am')
else
raise "The date #{date} does not match any dst date parameter"
end
date
end
Теперь мой вопрос: как мне взять возвращенное значение DATETIME из этого оператора case, поместить его в оператор if, чтобы определить, включает ли ономесяц НОЯБРЬ или МАРТ, а затем, если наступает март, проверьте, идет ли время на один час вперед или на ноябрь, а затем проверьте, вернется ли время на один час.