On 29/11/2012 20:51, J. Landman Gay wrote:
On 11/29/12 2:23 PM, Andrew Kluthe wrote:
That's what I'm looking for! Great.

However, I tried what I think I am supposed to do in the script below
and my dates are about three days off.

This function is supposed to give me the date for monday of the week
where the date paramater is.

If the paramater is empty it uses todays date.

function DetermineWeek pDate
    if pDate is empty then
       put the date into sDate
    else
       put pDate into sDate
    end if
    convert sDate to dateItems
    answer sDate
    set the itemDelimiter to ","
    put item -1 of sDate into sDay
    switch sDay
       case "2" --Monday
          put 0 into sDiff
       case "3" --Tuesday
          put 1 into sDiff
       case "4" --Wednesday
          put 2 into sDiff
       case "5" --Thursday
          put 3 into sDiff
       case "6" --Friday
          put 4 into sDiff
       case "7" --Saturday
          put 5 into sDiff
       case "1" --Sunday
          put 6 into sDiff
    end switch
    put item 3 of sDate into sDayOfMonth
    put sDayOfMonth - sDiff into sNewDay
    put sNewDay into item 3 of sDate
    answer sDate
    convert sDate to date
    return sDate
end DetermineWeek

For instance leaving the paramater blank should provide me today
(11/29/12) with a date of 11/26/12 but instead I am returned 11/23/12.

You forgot the "break" statements in the switch. Everything will fall through to a difference of 6.

Or just replace  all that switch by
    put item -1 of sDate into sDay
    put sDay-2 into sDiff
    if sDiff < 0 then put 6 into sDiff

or do it all in one step
   put item 3 of sDate - (item -1 of sDate) + 2 into sDayOfMonth
   if item -1 of sDate = 1 then subtract 7 from sDayOfMonth
   put sDayOfMonth into item 3 of sDate

-- Alex.

_______________________________________________
use-livecode mailing list
[email protected]
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-livecode

Reply via email to