#applescript #icalendar
#applescript #icalendar
Вопрос:
Я перебираю все события в iCal, чтобы получить только сегодняшние события, но я не думаю, что это эффективно. Существует ли функция / метод для получения только сегодняшних событий?
tell application "iCal"
tell calendar "Lotus Notes"
set today to (current date)
set this_year to year of today
set this_month to month of today
set this_day to day of today
repeat with c in every event
set d to start date of c
set the_year to year of d
set the_month to month of d
set the_day to day of d
if (the_year = this_year) and (the_month = this_month) and (the_day = this_day) then
show c
end if
end repeat
end tell
end tell
Ответ №1:
Попробуйте это:
set {year:y, month:m, day:d} to current date
set str to (m as string) amp; " " amp; (d as string) amp; " " amp; (y as string)
set today to date str
set tomorrow to today 60 * 60 * 24
tell application "iCal"
tell calendar "Lotus Notes"
set curr to every event whose start date is greater than or equal to today ¬
and start date is less than or equal to tomorrow
end tell
end tell
Комментарии:
1. При этом не будут получены какие-либо повторяющиеся события, впервые определенные на более раннюю дату, которые происходят сегодня. Похоже, это сложная проблема, и, глядя на другие ответы на SO, люди, похоже, используют hasseg.org/icalBuddy