2012-01-16 6 views
5

Come ottengo la data di lunedì della settimana corrente. Dove lunedì è il primo giorno della settimana. Quindi, se sono stato a guardare in alto di questa settimana sarebbe restituire la data 1/16/2012Trova questa settimana lunedì

Sto usando VBScript e ASP

Molte grazie in anticipo ..

Paul

risposta

10

In effetti, la funzione Weekday restituisce Domenica = 1, Lunedi = 2, ecc Per ottenere il Lunedi della stessa settimana, si vuole sottrarre:

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

O giorni per sottrarre = (Giorno della settimana - 2 + 7) Mod 7

Quindi, se d è una data, il Lunedi della stessa settimana può essere scritta come:

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

Ha funzionato un piacere ... molte grazie per il vostro aiuto .. – neojakey

+0

Una grande risposta. –

0

VBScript ha una funzione chiamata WeekDay, restituisce 1 - 7, non sono sicuro che sia 1 il lunedì, di solito puoi giocarci.

In entrambi i casi il giovedì feriale = 4? , quindi è sufficiente prendere tre giorni di pausa con la funzione DateAdd

1

In VBScript WeekDay restituisce il giorno della settimana, a partire da Sunday = 1 (VBScript può essere eccentrico in questo modo). Quindi basta sottrarre due (lunedì = 2) da quel valore e chiamare DateAdd.

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

Hai dimenticato di moltiplicare a -1 quindi i giorni sono sottratti 'lunedi = DateAdd (" d ", (WeekDay (Date()) - 2) * - 1, Date())' –

+0

Oops, giusto. – jonkroll