This is mostly for those that have these same dates and I am sure others can benifit from this code.

view plain print about
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#" />