Не стоит заранее рассчитывать такое большое количество времени и спать часами. В лучшем случае спите минуту, затем просыпайтесь и пересчитывайте время, снова спите не более минуты. Я предполагаю, что вычисление очень дешево или его можно сделать очень дешево с помощью кэширования. Проблема, которую я советую устранить, заключается в том, что часы компьютера удивительно «скачут», в основном из-за смещения времени, исправленного службой сетевого времени, также из-за экономии летнего времени и не в последнюю очередь из-за того, что пользователь настраивает часы. Поэтому лучше постоянно пересчитывать время для таких длинных интервалов, даже если это означает просыпаться каждую минуту или около того. И не удивляйтесь (т. Е. Не утверждайте), если вы проснетесь в «прошлом», часы могут вернуться во времени.