Скажем, я хочу создать ежедневный планировщик, и я хочу разделить день на 15-минутные куски.
Легко, правда? Просто начинай в полночь и... Неправильно! В Америке /Sao _Paulo, один день каждый год начинается в 01:00 из-за изменения летнего времени.
Учитывая часовой пояс и дату, как можно найти время, в которое начинается день?
Моя первая мысль заключалась в том, чтобы использовать следующее, но предполагает, что каждый день имеет 23:59. Вероятно, это не лучше предположения, чем предположить, что каждый день имеет полночь.
perl -MDateTime -E'
say
DateTime->new( year => 2013, month => 10, day => 20 )
->subtract( days => 1 )
->set( hour => 23, minute => 59 )
->set_time_zone("America/Sao_Paulo")
->add( minutes => 1 )
->strftime("%H:%M");
'
01:00
Существует ли более надежная или более прямая альтернатива?