「/」で区切られた特定の文字列をメッセージ、日時とともに解析し、Mountain Lion Reminders.app でリマインダーを作成するコードを作成しました。
私の問題は、正当な理由もなく、リマインダーに渡した日付が気に入らないように見える場合に発生します。
次のエラー メッセージが表示されます。
Invalid date and time date August 6 2012 6:00pm of list Reminders.
これが私のコードです:
--explode © 2008 ljr (http://applescript.bratis-lover.net)
on explode(delimiter, input)
local delimiter, input, ASTID
set ASTID to AppleScript's text item delimiters
try
set AppleScript's text item delimiters to delimiter
set input to text items of input
set AppleScript's text item delimiters to ASTID
return input --> list on error eMsg number eNum
set AppleScript's text item delimiters to ASTID
error "Can't explode: " & eMsg number eNum
end try
end explode
--reminders © 2012 Jonathan Wiesel (http://github.com/jonathanwiesel)
set myList to explode("/", "visit my mom/today/6:00pm")
set theReminder to item 1 of myList
set queryDay to item 2 of myList
set theHour to item 3 of myList
set theYear to year of (current date)
if queryDay = "today" then
set theDay to day of (current date) as string
set theMonth to month of (current date)
set theDate to theMonth & " " & theDay & " " & theYear
else if queryDay = "tomorrow" then
set theDay to (day of ((current date) + (24 * 60 * 60)))
if (day of (current date)) < (day of ((current date) + (24 * 60 * 60)))
set theMonth to month of (current date)
else
set theMonth to (month of ((current date) + (30 * 24 * 60 * 60)))
end if
if year of (current date) < year of ((current date) + (24 * 60 * 60)) then
set theYear to (year of (current date)) + 1
set theDate to theMonth & " " & theDay & " " & theYear & " "
else
set theYear to year of (current date)
set theDate to theMonth & " " & theDay & " " & theYear & " "
end if
else
set theDate to queryDay
end if
set stringedDate to theDate as string
set stringedHour to theHour as string
set stringedAll to stringedDate & " " & stringedHour
tell application "Reminders"
tell list "Reminders"
make new reminder with properties {name:theReminder, due date:date stringedAll}
end tell
end tell