То же самое для тех, кто говорит об использовании объекта Calendar.
Вы можете столкнуться с неожиданными неприятностями, если попытаетесь использовать объект Date и добавить к нему 24 часа.
Вот загадка для вас: какой самый длинный месяц в году? Вы можете подумать, что нет ответа на этот вопрос. У семи месяцев по 31 день, поэтому они все одинаковой длины, верно? Ну, в Соединенных Штатах это было бы почти правильно, но в Европе это было бы неправильно! В Европе октябрь самый длинный месяц. У него 31 день и 1 час, потому что европейцы переводят свои часы на 1 час на летнее время в октябре, делая один день в октябре 25 часов. (У американцев сейчас начинается летнее время в ноябре, у которого 30 дней, поэтому ноябрь все еще короче октября или декабря. Таким образом, эта загадка не так забавна для американцев.)
Однажды я столкнулся с проблемой, выполнив точно то, что вы пытаетесь сделать: я использовал объект Date и добавил к нему 24 часа в цикле. Это работало до тех пор, пока я не перешел границы летнего времени. Но когда я это сделал, внезапно я пропустил один день или дважды ударил один и тот же день, потому что полночь 8 марта 2009 года + 24 часа = 1:00 утра 10 марта. Отбросьте время, как я делал, и 9 марта загадочным образом пропустили , Точно так же полночь 1 ноября 2009 года + 24 часа = 23:00 вечера 1 ноября, и мы дважды ударили 1 ноября.