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)
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)
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; |