Gururiの日記

かつてはてなダイアリーで付けていたGururiの日記

前日終了1秒前

日記を書く前に日付が変わってしまった場合、明示的に前日の日付で書いてるわけだが、タイムスタンプを付けているためにそのまま書くと表示上の日付は前日なのに、タイムスタンプ(UNIX時間)は翌日という変な状態になってしまう。というわけで、今まではAppleScriptとシェル*1で前日終了1秒前のUNIX時間を生成し、クリップボードに突っ込んでいたのだが、ふと思い立ってAppleScriptのみで書き直してみた。
before(\はバックスラッシュに直さないと動きません)

do shell script (("echo " & ((((date (do shell script "date +%Y/%m/%d")) - (date "1970年01月01日 木曜日 09:00:00")) as real) - 1) as string) & "|perl -pe's/\\.//;s/E\\+9//;chomp;'|pbcopy")
beep

after

current date
set the clipboard to ("1" & ((date ((year of result & "/" & ((month of result) as integer) & "/" & day of result) as string))) - 1.000000001E+9 - (date "1970年01月01日 木曜日 09:00:00")) as string
beep

はい、全く以てわからない人には全くわからないスクリプトになってます。毎度の事ですが。
おいらは~/Library/Scripts/Applications/Safari/に保存して、スクリプトメニューから呼び出して使ってます。欠点は当たり前だがMacでしか使えないってことと、2033年5月18日までしか使えないことです。

*1:正確にはAppleScript内でdo shell scriptを使っていた。