2012-01-16 39 views
5

Làm cách nào để có được ngày thứ Hai của tuần hiện tại này. Thứ Hai là ngày đầu tiên trong tuần. Vì vậy, nếu tôi là để tìm kiếm tuần này nó sẽ quay trở lại ngày 1/16/2012Tìm tuần này Thứ Hai

Tôi đang sử dụng VBScript và ASP

Nhiều cảm ơn trước ..

Paul

Trả lời

10

hiệu quả, hàm Weekday trả về chủ nhật = 1, Thứ Hai = 2, vv Để có được thứ hai của cùng một tuần, bạn muốn trừ:

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

Hoặc ngày trừ = (Weekday - 2 + 7) Mod 7

vì vậy, nếu d là một ngày, vào ngày thứ Hai của tuần tương tự có thể được viết như sau:

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

Làm việc một điều trị ... cảm ơn rất nhiều sự giúp đỡ của bạn .. – neojakey

+0

Một câu trả lời tuyệt vời. –

0

VBScript có một hàm được gọi là WeekDay, nó trả về 1 - 7, không chắc chắn liệu 1 là thứ hai mặc dù, thông thường bạn có thể twiddle với điều đó.

Dù bằng cách nào có được ngày trong tuần Thứ năm = 4? , do đó, bạn chỉ cần thực hiện ba ngày với chức năng DateAdd

1

Trong VBScript WeekDay trả về ngày trong tuần, bắt đầu với Chủ nhật = 1 (VBScript có thể kỳ quặc như thế). Vì vậy, chỉ cần trừ hai (Monday = 2) từ giá trị đó và gọi DateAdd.

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

Bạn quên nhân với -1 để những ngày bị trừ trừ 'monday = DateAdd (" d ", (WeekDay (Date()) - 2) * - 1, Date())' –

+0

Rất tiếc, đúng vậy. – jonkroll

Các vấn đề liên quan