Go Premium for a chance to win a PS4. Enter to Win

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 459
  • Last Modified:

determining the date of the last Sunday

I need to figure out what the date is on the Sunday prior to the current day and the date of the Sunday the week before that.  For example, today is Tuesday May 5.  I need to capture the date variable of the Sunday of the current week which in the example would be Sunday, May 3.  Then I also need to capture the week prior to that, so I would need to capture Sunday, April 26.  

Is there even a way to do this?  I'm needing these dates because I have a reporting tool with a drop down of specific periods of time.  For example, in the dropdown I have for choices, This Week, Last Week, This Month, Last Month, This Year, Last Year.  So when the end user chooses one of these periods, it queries the database for that specific period of time.  For example, the end user chooses Last Month.  So in my query, it would get all records from April 1 to April 30.  I have that done...but not sure on how to get the weeks.  

So if the end user chooses This Week, I want the query to give results for records of between May 3 and May 9.  If the end user chooses Last Week, I want the query to give results for records between April 26 and May 2.
0
Lee R Liddick Jr
Asked:
Lee R Liddick Jr
  • 3
  • 3
  • 2
  • +1
3 Solutions
 
duncancummingCommented:
ok, each day of the week has a numeric value, from 1 (Sunday) to 7 (Monday).  I think use that to figure out what day of the week it is, work out what you then need to subtract from the current date to get the previous sunday.  The function you'll need to do that is DayOfWeek(Now())
0
 
azadisaryevCommented:
shouldn't be hard with a couple cf date functions. something like this:

<!--- NOTE: Sunday is day of week #1 in CF --->
<cfset datToday = now()>
<cfset dowToday = dayofweek(datToday)>
<cfset datThisSunday = dateadd('d', 1-dowToday, datToday)>
<cfset datLastSunday = dateadd('d', -7, datThisSunday)>

similar for other dates you need...

Azadi
0
 
_agx_Commented:
<cfset daysOffset = 1 - DayOfWeek(now())>
<cfset sundayThisWeek = dateAdd("d", daysOffset, now())>
<cfset sundayLastWeek = dateAdd("ww", -1, sundayThisWeek)>
<cfset sundayTwoWeeksAgo = dateAdd("ww", -2, sundayThisWeek)>
...

<cfoutput>
Today is:  #DateFormat(now(), "dddd mmm dd, yyyy")#<br>
Sunday this week:   #DateFormat(sundayThisWeek, "dddd mmm dd, yyyy")#<br>
Sunday last week:   #DateFormat(sundayLastWeek, "dddd mmm dd, yyyy")#<br>
Sunday two weeks ago:   #DateFormat(sundayTwoWeeksAgo, "dddd mmm dd, yyyy")#<br>
</cfoutput>
0
Independent Software Vendors: We Want Your Opinion

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 
duncancummingCommented:
<!--- this will return a value between 0 (if today's Sunday) to 6 (if it's Monday) --->
<cfset numDays = Abs(1 - DayOfWeek(Now()))>

<!--- subtract #numDays# from the current date --->
<cfset startDate = DateAdd("d", -numDays, Now())>

<!--- use that in your query or whatever, and work out the endDate as 7 days after the startDate --->

0
 
azadisaryevCommented:
... continued:

i.e. for last month:
<cfset lastMonth = dateadd('m', -1, datToday)>
<cfset lastMonthStart = createdate(year(lastMonth), month(lastMonth), 1)>
<cfset lastMonthEnd = createdate(year(lastMonth), month(lastMonth), daysinmonth(lastMonth))>

last year:

<cfset lastYearStart = createdate(year(dateadd('yyyy', -1, datToday)), 1, 1)>
<cfset lastYearEnd= createdate(year(dateadd('yyyy', -1, datToday)), 12, 31)>

Azadi
0
 
_agx_Commented:
... Are you getting the impression you can do this with the dateAdd function ? ;-)
0
 
Lee R Liddick JrReporting AnalystAuthor Commented:
yeah agx...if I would have only known it was this simple.  :)  Just got off of a call, let me take a look at everything.
0
 
Lee R Liddick JrReporting AnalystAuthor Commented:
These were gimme points, weren't they agx?  I'm thinking if I would have thought about it a little bit, I probably would have come up with it, but I need to get this done and a bunch of other stuff before the end of the day and figured I could use some help.  You guys are great!
0
 
Lee R Liddick JrReporting AnalystAuthor Commented:
Thanks to all!
0
 
_agx_Commented:
Yep.. but it is nice when the solution is simpler than you think, rather than the other way around ;-)
0

Featured Post

Free Tool: Subnet Calculator

The subnet calculator helps you design networks by taking an IP address and network mask and returning information such as network, broadcast address, and host range.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

  • 3
  • 3
  • 2
  • +1
Tackle projects and never again get stuck behind a technical roadblock.
Join Now