Skip to content

Instantly share code, notes, and snippets.

@boxfrommars
Last active August 25, 2016 15:30
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save boxfrommars/f9a8ecabd39d3fad4dc0fd3c81140865 to your computer and use it in GitHub Desktop.
Save boxfrommars/f9a8ecabd39d3fad4dc0fd3c81140865 to your computer and use it in GitHub Desktop.

Определения

везде я буду указывать только время начала периода, то есть 2015-06-01 03:20 это интервал [2015-06-01 03:20, 2015-06-01 03:30) -- правое значение исключено, т.е. точнее [2015-06-01 03:20, 2015-06-01 02:29:59.999]

запись 2015-11-01 06:20Z указывает на UTC-время

Переход на зимнее время (UTC-4h -> UTC-5h)

UTC Boston Local Interval
2015-11-01 04:50 2015-11-01 00:50 5
2015-11-01 05:00 2015-11-01 01:00 6
2015-11-01 05:10 2015-11-01 01:10 7
2015-11-01 05:20 2015-11-01 01:20 8
2015-11-01 05:30 2015-11-01 01:30 9
2015-11-01 05:40 2015-11-01 01:40 10
2015-11-01 05:50 2015-11-01 01:50 11
2015-11-01 06:00 2015-11-01 01:00 6
2015-11-01 06:10 2015-11-01 01:10 7
2015-11-01 06:20 2015-11-01 01:20 8
Случай, когда переход приходится на кратковременные интачи

допустим мы расчитываем для интервала 2015-11-01 06:20Z (8 интервал)

тогда кратковременные интервалы:

intouchs_0  2015-11-01 06:10Z (7)
intouchs_1  2015-11-01 06:00Z (6)
intouchs_2  2015-11-01 05:50Z (11)
intouchs_3  2015-11-01 05:40Z (10)
intouchs_4  2015-11-01 05:30Z (9)
intouchs_5  2015-11-01 05:20Z (8)
intouchs_6  2015-11-01 05:10Z (7)
intouchs_7  2015-11-01 05:00Z (6)
intouchs_8  2015-11-01 04:50Z (5)
intouchs_9  2015-11-01 04:40Z (4)
intouchs_10 2015-11-01 04:30Z (3)
intouchs_11 2015-11-01 04:20Z (2)

долговременные:

intouchs_lag_1 2015-10-31 05:20Z (8) <--- отметить, что между расчётным периодом и этим временем прошло 25 часов реального (UTC) времени, а не 24
intouchs_lag_2 2015-10-30 05:20Z (8)
intouchs_lag_3 2015-10-29 05:20Z (8)
intouchs_lag_4 2015-10-28 05:20Z (8)
intouchs_lag_5 2015-10-27 05:20Z (8)
intouchs_lag_6 2015-10-26 05:20Z (8)
intouchs_lag_7 2015-10-25 05:20Z (8)
Случай, когда переход (перехлёст) приходится на долговременные интачи

допустим мы расчитываем для интервала 2015-11-04 06:20Z (8 интервал) тогда с кратковременными интачами никаких проблем нет

долговременные:

intouchs_lag_1 2015-11-03 06:20Z (8)
intouchs_lag_2 2015-11-02 06:20Z (8)
intouchs_lag_3 2015-11-01 06:20Z (8) <--- тут двойственность, можно выбрать как 06:20Z так и 05:20Z, по требованиям нужно выбирать последний, хоть мне это и не кажется логичным
intouchs_lag_4 2015-10-31 05:20Z (8)
intouchs_lag_5 2015-10-30 05:20Z (8)
intouchs_lag_6 2015-10-29 05:20Z (8)
intouchs_lag_7 2015-10-28 05:20Z (8)

Переход на летнее время (UTC-5h -> UTC-4h)

UTC Boston Local Interval
2016-03-13 06:40 2016-03-13 01:40 10
2016-03-13 06:50 2016-03-13 01:50 11
2016-03-13 07:00 2016-03-13 03:00 18
2016-03-13 07:10 2016-03-13 03:10 19
2016-03-13 07:20 2016-03-13 03:20 20
Случай, когда переход приходится на кратковременные интачи

допустим мы расчитываем для интервала 2015-03-13 07:20Z (20 интервал)

тогда кратковременные

intouchs_0  2016-03-13 07:10Z (19)
intouchs_1  2016-03-13 07:00Z (18)
intouchs_2  2016-03-13 06:50Z (11)
intouchs_3  2016-03-13 06:40Z (10)
intouchs_4  2016-03-13 06:30Z (9)
intouchs_5  2016-03-13 06:20Z (8)
intouchs_6  2016-03-13 06:10Z (7)
intouchs_7  2016-03-13 06:00Z (6)
intouchs_8  2016-03-13 05:50Z (5)
intouchs_9  2016-03-13 05:40Z (4)
intouchs_10 2016-03-13 05:30Z (3)
intouchs_11 2016-03-13 05:20Z (2)

долговременные

intouchs_lag_1 2016-03-12 08:20Z (19) <--- отметить, что между расчётным периодом и этим временем прошло 23 часа реального (UTC) времени, а не 24 
intouchs_lag_2 2016-03-11 08:20Z (19)
intouchs_lag_3 2016-03-10 08:20Z (19)
intouchs_lag_4 2016-03-09 08:20Z (19)
intouchs_lag_5 2016-03-08 08:20Z (19)
intouchs_lag_6 2016-03-07 08:20Z (19)
intouchs_lag_7 2016-03-06 08:20Z (19)
Случай, когда переход (отсутствие) приходится на долговременные интачи

допустим мы расчитываем для интервала 2015-03-16 06:20Z (14 интервал) тогда с кратковременными интачами никаких проблем нет

долговременные

intouchs_lag_1 2016-03-16 06:20Z (14) 
intouchs_lag_2 2016-03-15 06:20Z (14)
intouchs_lag_3 2016-03-14 06:20Z (14)
intouchs_lag_4 запасное значение для 14 интервала в воскресенье, то есть медиана от значений {2016-03-06 07:20Z, 2016-02-28 07:20Z, 2016-02-22 07:20Z}
intouchs_lag_5 2016-03-12 07:20Z (14)
intouchs_lag_6 2016-03-11 07:20Z (14)
intouchs_lag_7 2016-03-10 07:20Z (14)

Ссылки

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment