2012-01-16 8 views
5

¿Cómo obtengo la fecha del lunes de esta semana actual? Donde el lunes es el primer día de la semana. Así que si yo iba a buscar esta semana sería devolver la fecha 1/16/2012Find This Weeks Monday

estoy usando VBScript y ASP

Muchas gracias de antemano ..

Paul

Respuesta

10

Efectivamente, la función devuelve día de la semana Domingo = 1, de lunes = 2, etc. Para obtener el lunes de la misma semana, desea restar:

Sunday (1): 6 days 
Monday (2): 0 days 
Tuesday(3): 1 day 
... 
Saturday(7): 5 days. 

O Días para restar = (día de la semana - 2 + 7) Mod 7

Así que si d es una fecha, el lunes de la misma semana se puede escribir como:

mondayofsameweek = DateAdd("d", -((Weekday(d) + 7 - 2) Mod 7), d) 
+0

Trabajó un regalo ... muchas gracias por su ayuda. – neojakey

+0

Una gran respuesta. –

0

VBScript tiene una función llamada WeekDay, devuelve 1 - 7, pero no estoy seguro de si 1 es el lunes, por lo general se puede jugar con eso.

De cualquier manera, ¿sale el día de la semana el jueves = 4? , entonces solo necesita tomar tres días de su fecha con la función DateAdd

1

En VBScript WeekDay devuelve el día de la semana, comenzando con Sunday = 1 (VBScript puede ser así de peculiar). Así que solo resta dos (lunes = 2) de ese valor y llama a DateAdd.

monday = DateAdd("d",(WeekDay(Date())-2),Date()) 
+1

Se olvidó de multiplicar a -1 por lo que los días se restan 'lunes = FechaAñadir (" d ", (WeekDay (Fecha()) - 2) * - 1, Fecha())' –

+0

Oops, eso es correcto. – jonkroll