End of special reporting periods
Jan 23 2010
This is mostly for those that have these same dates and I am sure others can benifit from this code.
1<cfset theDate = now() />
2
3<cfscript>
4 dates = structNew();
5 dates.today = thedate;
6 d = dayOfWeek(theDate);
7 if(d == 7) {
8 dates.ddsWeekStart = theDate;
9 } else {
10 dates.ddsWeekStart = dateAdd("d", -d, theDate);
11 }
12 dates.ddsWeekEnd = dateAdd("d", 6, dates.ddsWeekStart);
13 lastDateLastMonth = dateAdd("d", -(1 + day(theDate)), theDate);
14 d = dayOfWeek(lastDateLastMonth);
15 if(d == 7) {
16 dates.ddsMonthStart = lastDateLastMonth;
17 } else {
18 dates.ddsMonthStart = dateAdd("d", - d, lastDateLastMonth);
19 }
20 days = daysInMonth(theDate);
21 lastDate = createDate(year(theDate), month(theDate), days);
22 d = dayOfWeek(lastDate);
23 if(d == 6) {
24 dates.ddsMonthEnd = lastDate;
25 } else {
26 dates.ddsMonthEnd = dateAdd("d", - (1 + d), lastDate);
27 }
28
29 if(theDate > dates.ddsMonthEnd) {
30 dates.ddsMonthStart = dateAdd("d", 1, dates.ddsMonthEnd);
31 nextMonth = dateAdd("m", 1, dates.ddsMonthStart);
32 lastDate = createDate(year(nextMonth), month(nextMonth), daysInMonth(nextMonth));
33 d = dayOfWeek(lastDate);
34 if(d == 6) {
35 dates.ddsMonthEnd = lastDate;
36 } else {
37 dates.ddsMonthEnd = dateAdd("d", - (1 + d), lastDate);
38 }
39
40 }
41 m = monthh(theDate) + 2) MOD 3;
42 if(m == 0) {
43 qDate = theDate;
44 } else {
45 qDate = dateAdd("m", -m, theDate);
46 }
47 lastDateLastMonth = dateAdd("d", -(1 + day(qDate)), qDate);
48 d = dayOfWeek(lastDateLastMonth);
49 if(d == 7) {
50 dates.ddsQuarterStart = lastDateLastMonth;
51 } else {
52 dates.ddsQuarterStart = dateAdd("d", - d, lastDateLastMonth);
53 }
54 qDate = dateAdd("m", 2, qDate);
55 days = daysInMonth(qDate);
56 lastDate = createDate(year(qDate), month(qDate), days);
57 d = dayOfWeek(lastDate);
58 if(d == 6) {
59 dates.ddsQuarterEnd = lastDate;
60 } else {
61 dates.ddsQuarterEnd = dateAdd("d", - (1 + d), lastDate);
62 }
63
64 if(theDate > dates.ddsQuarterEnd) {
65 dates.ddsQuarterStart = dateAdd("d", 1, dates.ddsQuarterEnd);
66 nextQuarter = dateAdd("m", 3, dates.ddsQuarterStart);
67 lastDate = createDate(year(nextQuarter), month(nextQuarter), daysInMonth(nextQuarter));
68 d = dayOfWeek(lastDate);
69 if(d == 6) {
70 dates.ddsQuarterEnd = lastDate;
71 } else {
72 dates.ddsQuarterEnd = dateAdd("d", - (1 + d), lastDate);
73 }
74
75 }
76 lastDateLastYear = createDate(year(theDate) -1, 12, 31);
77 d = dayOfWeek(lastDateLastYear);
78 if(d == 7) {
79 dates.ddsYearStart = lastDateLastYear;
80 } else {
81 dates.ddsYearStart = dateAdd("d", - d, lastDateLastYear);
82 }
83 lastDate = createDate(year(theDate), 12, 31);
84 d = dayOfWeek(lastDate);
85 if(d == 6) {
86 dates.ddsYearEnd = lastDate;
87 } else {
88 dates.ddsYearEnd = dateAdd("d", - (1 + d), lastDate);
89 }
90
91 if(month(theDate) > 9) {
92 dates.fiscalYearStart = createDate(year(theDate), 10, 01);
93 dates.fiscalYearEnd = createDate(year(dateAdd('yyyy', 1, theDate)), 09, 30);
94 } else {
95 dates.fiscalYearStart = createDate(year(dateAdd('yyyy', -1, theDate)), 10, 01);
96 dates.fiscalYearEnd = createDate(year(theDate), 09, 30);
97 }
98 if(dayOfWeek(theDate) == 6) {
99 dates.isDDSEndWeek = True;
100 } else {
101 dates.isDDSEndWeek = False;
102 }
103 if(dates.ddsMonthEnd == theDate) {
104 dates.isDDSEndMonth = True;
105 } else {
106 dates.isDDSEndMonth = False;
107 }
108 if(dates.ddsQuarterEnd == theDate) {
109 dates.isDDSEndQuarter = True;
110 } else {
111 dates.isDDSEndQuarter = False;
112 }
113 if(dates.ddsYearEnd == theDate) {
114 dates.isDDSEndYear = True;
115 } else {
116 dates.isDDSEndYear = False;
117 }
118 if(daysInMonth(theDate) == day(theDate)) {
119 dates.isEOM = True;
120 } else {
121 dates.isEOM = False;
122 }
123 if(dates.fiscalYearEnd == theDate) {
124 dates.isFiscalEndYear = True;
125 } else {
126 Dates.isFiscalEndYear = False;
127 }
128</cfscript>
129<cfdump var = "#dates#" />
2
3<cfscript>
4 dates = structNew();
5 dates.today = thedate;
6 d = dayOfWeek(theDate);
7 if(d == 7) {
8 dates.ddsWeekStart = theDate;
9 } else {
10 dates.ddsWeekStart = dateAdd("d", -d, theDate);
11 }
12 dates.ddsWeekEnd = dateAdd("d", 6, dates.ddsWeekStart);
13 lastDateLastMonth = dateAdd("d", -(1 + day(theDate)), theDate);
14 d = dayOfWeek(lastDateLastMonth);
15 if(d == 7) {
16 dates.ddsMonthStart = lastDateLastMonth;
17 } else {
18 dates.ddsMonthStart = dateAdd("d", - d, lastDateLastMonth);
19 }
20 days = daysInMonth(theDate);
21 lastDate = createDate(year(theDate), month(theDate), days);
22 d = dayOfWeek(lastDate);
23 if(d == 6) {
24 dates.ddsMonthEnd = lastDate;
25 } else {
26 dates.ddsMonthEnd = dateAdd("d", - (1 + d), lastDate);
27 }
28
29 if(theDate > dates.ddsMonthEnd) {
30 dates.ddsMonthStart = dateAdd("d", 1, dates.ddsMonthEnd);
31 nextMonth = dateAdd("m", 1, dates.ddsMonthStart);
32 lastDate = createDate(year(nextMonth), month(nextMonth), daysInMonth(nextMonth));
33 d = dayOfWeek(lastDate);
34 if(d == 6) {
35 dates.ddsMonthEnd = lastDate;
36 } else {
37 dates.ddsMonthEnd = dateAdd("d", - (1 + d), lastDate);
38 }
39
40 }
41 m = monthh(theDate) + 2) MOD 3;
42 if(m == 0) {
43 qDate = theDate;
44 } else {
45 qDate = dateAdd("m", -m, theDate);
46 }
47 lastDateLastMonth = dateAdd("d", -(1 + day(qDate)), qDate);
48 d = dayOfWeek(lastDateLastMonth);
49 if(d == 7) {
50 dates.ddsQuarterStart = lastDateLastMonth;
51 } else {
52 dates.ddsQuarterStart = dateAdd("d", - d, lastDateLastMonth);
53 }
54 qDate = dateAdd("m", 2, qDate);
55 days = daysInMonth(qDate);
56 lastDate = createDate(year(qDate), month(qDate), days);
57 d = dayOfWeek(lastDate);
58 if(d == 6) {
59 dates.ddsQuarterEnd = lastDate;
60 } else {
61 dates.ddsQuarterEnd = dateAdd("d", - (1 + d), lastDate);
62 }
63
64 if(theDate > dates.ddsQuarterEnd) {
65 dates.ddsQuarterStart = dateAdd("d", 1, dates.ddsQuarterEnd);
66 nextQuarter = dateAdd("m", 3, dates.ddsQuarterStart);
67 lastDate = createDate(year(nextQuarter), month(nextQuarter), daysInMonth(nextQuarter));
68 d = dayOfWeek(lastDate);
69 if(d == 6) {
70 dates.ddsQuarterEnd = lastDate;
71 } else {
72 dates.ddsQuarterEnd = dateAdd("d", - (1 + d), lastDate);
73 }
74
75 }
76 lastDateLastYear = createDate(year(theDate) -1, 12, 31);
77 d = dayOfWeek(lastDateLastYear);
78 if(d == 7) {
79 dates.ddsYearStart = lastDateLastYear;
80 } else {
81 dates.ddsYearStart = dateAdd("d", - d, lastDateLastYear);
82 }
83 lastDate = createDate(year(theDate), 12, 31);
84 d = dayOfWeek(lastDate);
85 if(d == 6) {
86 dates.ddsYearEnd = lastDate;
87 } else {
88 dates.ddsYearEnd = dateAdd("d", - (1 + d), lastDate);
89 }
90
91 if(month(theDate) > 9) {
92 dates.fiscalYearStart = createDate(year(theDate), 10, 01);
93 dates.fiscalYearEnd = createDate(year(dateAdd('yyyy', 1, theDate)), 09, 30);
94 } else {
95 dates.fiscalYearStart = createDate(year(dateAdd('yyyy', -1, theDate)), 10, 01);
96 dates.fiscalYearEnd = createDate(year(theDate), 09, 30);
97 }
98 if(dayOfWeek(theDate) == 6) {
99 dates.isDDSEndWeek = True;
100 } else {
101 dates.isDDSEndWeek = False;
102 }
103 if(dates.ddsMonthEnd == theDate) {
104 dates.isDDSEndMonth = True;
105 } else {
106 dates.isDDSEndMonth = False;
107 }
108 if(dates.ddsQuarterEnd == theDate) {
109 dates.isDDSEndQuarter = True;
110 } else {
111 dates.isDDSEndQuarter = False;
112 }
113 if(dates.ddsYearEnd == theDate) {
114 dates.isDDSEndYear = True;
115 } else {
116 dates.isDDSEndYear = False;
117 }
118 if(daysInMonth(theDate) == day(theDate)) {
119 dates.isEOM = True;
120 } else {
121 dates.isEOM = False;
122 }
123 if(dates.fiscalYearEnd == theDate) {
124 dates.isFiscalEndYear = True;
125 } else {
126 Dates.isFiscalEndYear = False;
127 }
128</cfscript>
129<cfdump var = "#dates#" />









