Я запускаю это на флаттере, но я думаю, что это может быть более общей проблемой.
Я сохраняю DateTime в настройках. Затем я хочу узнать, находится ли DateTime.now()
на хотя бы через день после последнего сохраненного DateTime, т. Е.
(pseudocode)
lastDailyCheck = 2020.04.10
now = 2020.04.11
=> сейчас на следующий день после lastDailyCheck.
Это уже должно работать, если в новый день 00:01, даже если lastDailyCheck был в 23:58 накануне, то есть разница может составлять всего лишь минуты между двумя датами DateTimes.
Оказывается, это действительно сложно!
Вот что не работает:
DateTime.Now().isAfter(lastDailyCheck)
Это только проверяет, если сейчас после последний, он также возвращает true через секунду и в тот же день.
DateTime.Now().isAfter(lastDailyCheck) && lastDailyCheck.day != DateTime.Now().day
Я думал, что это было умно. Если день другой и он равен после последнего, то он распознает день позже, но потом я понял, что он выйдет из строя, когда оба дня скажутся 15-го числа месяца - тогда lastDailyCheck.day
будет равно DateTime.Now().day
.
Как вы думаете, что было бы возможно здесь?