OSX Yosemite では、新しい JavaScript for Automation 機能を使用して Calendar のスクリプトを作成しています。カレンダーを検索して、現在発生中のイベントがあるかどうかを確認しようとしています。
私はAppleScriptでこれを次のように行いました:
set now to current date
every event whose start date < now and end date > now
AppleScript には、特殊な AppleScript 'date' オブジェクトがあることに気付きました。以下のようにイベントログが表示されます。文字列の前の「日付」修飾子に関する特別な注意。これは、これが単なる文字列ではなく日付オブジェクトであることを示しています。
count every event whose start date < date "Monday, August 11, 2014 at 5:49:46 PM" and end date > date "Monday, August 11, 2014 at 5:49:46 PM" and allday event = false
私はAppleScriptでこれを次のようにしようとしています:
workCalendar.events.whose({
_and: [
{ startDate: {'<': now} },
{ endDate: {'>': now} }
]
});
しかし、現在の変数に設定した値は、次のエラーを返します。
Error -1700: Can't convert types.
今のところ次の値を試しましたが、すべての戻り値の型変換エラー:
calendarApp.includeStandardAdditions = true;
now = calendarApp.currentDate;
now = (new Date());
now = (new Date()).toISOString();
now = $.NSDate.date;
それがどのタイプの値であるかを把握してみてください。私はこれを行いました:
firstStartDate = workCalendar.events[0].startDate();
console.log("firstStartDate : " + firstStartDate);
console.log("firstStartDate TO : " + (typeof firstStartDate));
console.log("firstStartDate OS : " + ObjectSpecifier.classOf(firstStartDate));
イベントログ内でこれが発生します:
/* firstStartDate : Wed Jun 18 2014 10:30:00 GMT-0700 (PDT) */
/* firstStartDate TO : object */
/* firstStartDate OS : undefined */