Dado un día de la semana (1-7), ¿cómo puedo calcular cuál fue la última fecha de ese día de la semana?
Ejemplo: Hoy es miércoles , 11/11/2008, y quiero saber cuál fue la fecha del último viernes .
Dado un día de la semana (1-7), ¿cómo puedo calcular cuál fue la última fecha de ese día de la semana?
Ejemplo: Hoy es miércoles , 11/11/2008, y quiero saber cuál fue la fecha del último viernes .
Si todayes el día actual de la semana, puede usar algo como:
days_since_friday = (((today - 1) + 7) - (6 - 1)) % 7
Esto supone que el viernes está representado por el día número 6 de la semana (es decir, 1 representa el domingo). Luego reste days_since_fridayde la fecha actual, y obtendrá la fecha del final de la semana pasada.
La expresión anterior es un poco más complicada de lo que necesita ser. Si su día de la semana comenzó en 0 para el domingo, se simplifica a:
days_since_friday = ((today + 7) - 5) % 7
o
days_since_friday = (today + 2) % 7
¿En general? Ver cálculos de Calendrix .
En este caso más estrecho de dentro de la semana anterior? Encuentra la diferencia en días (viernes = 5, miércoles = 3). Encuentra diferencias en semanas (la semana pasada = -7 días). Cuando haya encontrado el desplazamiento en días + semanas, aplique ese desplazamiento a la fecha del calendario.