Find first/last day in week

Two scripts in crystal syntax that finds the first and last day of the week. Pass the script a date ({@Today}) and it returns a new date. Can be used when doing weekly reports in crystal reports.

Find first day in week (Monday)

?View Code WINBATCH
1
2
3
4
5
6
7
8
9
10
11
12
13
14
If DayOfWeek({@Today}) = 2 Then
{@Today}
Else If DayOfWeek({@Today}) = 3 Then
dateadd ("d",-1,{@Today})
Else If DayOfWeek({@Today}) = 4 Then
dateadd ("d",-2,{@Today})
Else If DayOfWeek({@Today}) = 5 Then
dateadd ("d",-3,{@Today})
Else If DayOfWeek({@Today}) = 6 Then
dateadd ("d",-4,{@Today})
Else If DayOfWeek({@Today}) = 7 Then
dateadd ("d",-5,{@Today})
Else If DayOfWeek({@Today}) = 1 Then
dateadd ("d",-6,{@Today})

Find last day in week (Sunday)

?View Code WINBATCH
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Local DateTimeVar d := DateTime (DatePart ("yyyy", {@Today}), _
DatePart ("m", {@Today}), DatePart ("d", {@Today}), 23, 59, 59);
 
If DayOfWeek({@Today}) = 2 Then
dateadd ("d",+6,d)
Else If DayOfWeek({@Today}) = 3 Then
dateadd ("d",+5,d)
Else If DayOfWeek({@Today}) = 4 Then
dateadd ("d",+4,d)
Else If DayOfWeek({@Today}) = 5 Then
dateadd ("d",+3,d)
Else If DayOfWeek({@Today}) = 6 Then
dateadd ("d",+2,d)
Else If DayOfWeek({@Today}) = 7 Then
dateadd ("d",+1,d)
Else If DayOfWeek({@Today}) = 1 Then
d;