Вопрос

Учитывая день недели (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 дней). Когда вы найдете смещение в днях + неделях, примените это смещение к календарной дате.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top