Учитывая будний день (1-7), как я могу рассчитывать, что дата последней буднего дня была?
Пример: Сегодня среда , 2008/11/12, и я хочу знать , что в прошлом в пятницу дата была.
Учитывая будний день (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 дней). Если вы обнаружили смещение в дни + недели, применить это смещение к календарной дате.