-- extending the 24 hour clock: mod24h() and div24h() -- referring to today's events using 24 hour time is convenient, but -- this is found to not be extensible into the following day without -- bringing in date terminology. -- This script demonstrates two simple functions that facilitate -- working with time spans greater than 24 hours. set CR to return as text set msg to CR set baseDate to date string of (current date) set msg to msg & "baseDate: " & baseDate & CR set timeStr to "31:50:35" set msg to msg & "timeStr: " & timeStr & " [a length of time from 0:00 today]" & CR set eventTime to (date (baseDate & " " & timeStr)) set msg to msg & "eventTime attempt: " & eventTime & " [times > 24:00 are treated as 0:00]" & CR & CR set AppleScript's text item delimiters to ":" set h to first word of timeStr set msg to msg & "[first word of timeStr]: " & h & CR set timeLst to (words of timeStr as list) set AppleScript's text item delimiters to ", " set msg to msg & "[words of timeStr as list] " & "{" & timeLst & "}" & CR set msg to msg & "div24h(timeStr): " & div24h(timeStr) & " [days]" & CR set msg to msg & "mod24h(timeStr): " & mod24h(timeStr) & " [a time of day]" & CR set eventTime to (date (baseDate & " " & mod24h(timeStr))) + div24h(timeStr) * days set msg to msg & "eventTime: " & eventTime & CR on div24h(timeStr) set AppleScript's text item delimiters to ":" set h to (word 1 of timeStr) as integer return (h div 24) end div24h on mod24h(timeStr) set AppleScript's text item delimiters to ":" set timeList to (words of timeStr) as list set h to item 1 of timeList as integer set h to (h mod 24) set item 1 of timeList to (h as string) return timeList as string end mod24h