Re: Date question with weeknumber
Re: Date question with weeknumber
- Subject: Re: Date question with weeknumber
- From: "Nigel Garvey" <email@hidden>
- Date: Sat, 24 Apr 2010 17:25:57 +0100
In my message of Sat, 24 Apr 2010 17:14:12 +0100, I wrote:
>Bert Groeneveld wrote on Fri, 23 Apr 2010 10:38:01 +0200:
>
>>Hello,
>>
>>At some point in my script I know a weeknumber, for example set
>>myWeeknumber to "03", or set myWeeknumber to "52" (can be any
>>weeknumber in the future).
>>I want to find ou the date of the wednesday that falls in the week
>>with weeknumber myWeeknumber (this will be my startDate).
>>And I want to find out the date of the tuesday that falls in the week
>>after the week with weeknumber myWeeknumber (this will be my endDate).
>>
>>The format of the startDate end endDate should be "23-04-2010" (23th
>>of april of 2010).
>>
>>myWeeknumber is always a weeknumber in the future so when today falls
>>in week 52 of a given (this) year and myWeeknumber is set to "2" or
>>"02" then the startDate end the endDate fall in the next year of course.
>
>This would be my take on it:
I wait all day for my Internet connection to be restored and then
discover a bad edit the instant after I finally post! Here's the
corrected script:
-- ISO convention with Monday week starts.
on getDateRange(startWeekNumber)
set startWeekOffset to startWeekNumber - 1
set baseMonday to date "Monday 3 January 1583 00:00:00"
set now to (current date)
set Jan4 to date "Tuesday 4 January 1583 00:00:00"
set Jan4's year to now's year
set yearStart to Jan4 - (Jan4 - baseMonday) mod weeks
if ((now - yearStart) div weeks >= startWeekOffset) then
set Jan4's year to (Jan4's year) + 1
set yearStart to Jan4 - (Jan4 - baseMonday) mod weeks
end if
set startWeekStart to yearStart + startWeekOffset * weeks
set startWednesday to formatDate(startWeekStart + 2 * days)
set endTuesday to formatDate(startWeekStart + 8 * days)
return {startWednesday, endTuesday}
end getDateRange
on formatDate(theDate)
tell ((theDate's year) * 10000 + (theDate's month as integer) * 100
+ (theDate's day)) as text
return text 7 thru 8 & "-" & text 5 thru 6 & "-" & text 1 thru 4
end tell
end formatDate
getDateRange("03")
--> {"19-01-2011", "25-01-2011"}
NG
_______________________________________________
Do not post admin requests to the list. They will be ignored.
AppleScript-Users mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
Archives: http://lists.apple.com/archives/applescript-users
This email sent to email@hidden