星期六, 10月 02, 2010

寫程式 Applescript 取得日期時間

Applescript 非常的直覺,程式看起來就像再讀英文的文章一樣。因為變數型態沒有固定,目前又找不到一份比較完整的說明檔解釋每個物件(?)的內容物,所以只好從很多教學文章中抓出一點可以用的零件,拼湊出想要的功能。目前想要寫一個和日期,時間相關的 script 所以做了一些功課,並且作筆記,以免以後忘記又要從頭開始。

set timeOfTransfer to current date
-->date "2010年10月2日星期六 上午10:11:54"

有關於日期,一切的出發點都是 (current ddte),以今天日期為 2010年10月2號為例,直接使用 (current date) 可以得到

the weekday of (current date)
--> Saturday
the month of (current date)
-->October
the day of (current date)
-->2

Applescript 可以直接把字串轉換,比方說

the weekday of (current date) as integer
-->7
the month of (current date) as integer
-->10

這在比較日期的時候非常方便。那原本就是數字的變數轉換成字串會變成什麼?

the day of (current date) as string
-->"2"

會變成一個帶有數字二的字串。如果需要一個比較完整的日期資訊

the date string of (current date)
-->"2010年10月2日星期六"
the time string of (current date)
-->"上午9:47:46"

很方便吧!!還有更神奇的資料結構(?)

year of date "2010年10月2日星期六 上午12:00:00"
-->2010
month of date "2010年10月2日星期六 上午12:00:00"
-->October
day of date "2010年10月2日星期六 上午12:00:00"
-->2
seconds of date "2010年10月2日星期六 上午12:05:10"
-->10
minutes of date "2010年10月2日星期六 上午12:05:10"
-->5

在 hours 的部份有一個小小的驚喜,原本的程式碼是

hours of date "2010年10月2日星期六 上午13:00:00"

執行後程式碼自動改變成標準的寫法,並且輸出13

hours of date "2010年10月2日星期六 下午1:00:00"
-->13

[Reference 1] http://support.apple.com/kb/TA36838?viewlocale=en_US
[Reference 2] http://docs.info.apple.com/article.html?path=AppleScript/2.1/en/as209.html

沒有留言: