<cfcomponent
output="false"
hint="Date/time utility functions.">
<cffunction
name="GetWeekDates"
access="remote"
returntype="struct"
returnformat="JSON"
output="false"
hint="Given a date, it will return all dates in that week in a day-keyed struct.">
<cfargument
name="Date"
type="date"
required="false"
default="#Now()#"
/>
<cfset var LOCAL = {} />
<cfset LOCAL.Sunday = (
Fix( ARGUMENTS.Date ) -
DayOfWeek( ARGUMENTS.Date ) +
1
) />
<cfset LOCAL.Week = {
Sunday = LOCAL.Sunday,
Monday = (LOCAL.Sunday + 1),
Tuesday = (LOCAL.Sunday + 2),
Wednesday = (LOCAL.Sunday + 3),
Thursday = (LOCAL.Sunday + 4),
Friday = (LOCAL.Sunday + 5),
Saturday = (LOCAL.Sunday + 6)
} />
<cfloop
item="LOCAL.Day"
collection="#LOCAL.Week#">
<cfset LOCAL.Week[ LOCAL.Day ] = CreateDate(
Year( LOCAL.Week[ LOCAL.Day ] ),
Month( LOCAL.Week[ LOCAL.Day ] ),
Day( LOCAL.Week[ LOCAL.Day ] )
) />
</cfloop>
<cfreturn LOCAL.Week />
</cffunction>
</cfcomponent>