Расчет даты в течение дня недели

голоса
1

Учитывая будний день (1-7), как я могу рассчитывать, что дата последней буднего дня была?

Пример: Сегодня среда , 2008/11/12, и я хочу знать , что в прошлом в пятницу дата была.

Задан 12/11/2008 в 20:45
источник пользователем
На других языках...                            


2 ответов

голоса
1

Если 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
Ответил 12/11/2008 в 20:50
источник пользователем

голоса
4

В целом? См Календарные вычисления .

В этом узком случае в течение предыдущей недели? Найти разницу в днях (пятница = 5, в среду = 3). Найти различия в недели (на прошлой неделе = -7 дней). Если вы обнаружили смещение в дни + недели, применить это смещение к календарной дате.

Ответил 12/11/2008 в 20:53
источник пользователем

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more