Дата расчета для дня недели
-
08-07-2019 - |
Вопрос
Учитывая день недели (1-7), как я могу вычислить, какой была последняя дата этого дня недели?
Пример: Сегодня это Среда, 2008/11/12, и я хочу знать, что было последним Пятничный свидание было.
Решение
Если today
это текущий день недели, тогда вы можете использовать что-то вроде:
days_since_friday = (((today - 1) + 7) - (6 - 1)) % 7
Это предполагает, что пятница представлена номером дня 6 недели (то есть 1 представляет воскресенье).Затем вычтите days_since_friday
начиная с текущей даты, вы получите дату конца прошлой недели.
Приведенное выше выражение немного сложнее, чем должно быть.Если ваш день недели начинался с 0 в воскресенье, это упрощается до:
days_since_friday = ((today + 7) - 5) % 7
или
days_since_friday = (today + 2) % 7
Другие советы
В общем? См. Календарные вычисления .
В этом более узком случае в течение предыдущей недели? Найдите разницу в днях (пятница = 5, среда = 3). Найти различия в неделях (на прошлой неделе = -7 дней). Когда вы найдете смещение в днях + неделях, примените это смещение к календарной дате.