このページは福井県立大学の田中求之が2006年1月まで運用していた Mac のサーバ運用に関する会議室 「Web Scripter's Meeting」の記録です。情報が古くなっている可能性がありますのでご注意ください。

短い日付を使うには?

発言者:稲垣@信州
( Date Thursday, April 10, 1997 11:24:02 )


 何時もお世話になっています。稲垣@信州です。

 oneLinerを使ったスクリプトで、短い日付をいれたいのですが、どうしたらい
いのでしょうか?
 「current date」を使うと、長い日付が入ってしまいます。

 日付/時間のコントロールパネルで、表示される真ん中か、一番下のものを使い
たいのです。

 いい方法がありましたら、教えてください。


狩野正嗣 さんからのコメント
( Thursday, April 10, 1997 12:21:56 )

 純正のAppleScriptのみで行うなら、current dateを取得し、そのyear、monthや
day、weekdayなどをそれぞれ取り出して、日付の文字列を新たに作成すればいいと思
います。例えばつぎのサブルーチンを使えば、"97.4.10 (木)"といった形で日付を得る
ことができます。

on DateToStr()
  set cDate to (current date)
  set cYear to (characters 3 thru end of ((year of cDate) as string)) as string
  set cMonth to MonthToNum(month of cDate) as string
  set cDay to (day of cDate) as string
  set cWeekday to WeekdayToNum(weekday of cDate)
  set CurDelim to AppleScript's text item delimiters
  set AppleScript's text item delimiters to "."
  set theStr to ({cYear} & cMonth & cDay) as string
  set AppleScript's text item delimiters to CurDelim
  return theStr & " (" & cWeekday & ")"
end DateToStr

on MonthToNum(theMonth)
  set MonthList to {January, February, March, April, May, June, July, August, September, October, November, December}
  repeat with i from 1 to 12
    if item i of MonthList is theMonth then
      return i
    end if
  end repeat
end MonthToNum

on WeekdayToNum(CurWeekday)
  set WeekdayList to {Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday}
  set JpList to {"日", "月", "火", "水", "木", "金", "土"}
  repeat with i from 1 to 12
    if item i of WeekdayList is CurWeekday then
      return item i of JpList
    end if
  end repeat
end WeekdayToNum

 また、Tanaka's osaxを使えば、数字のみの日付を得ることもできます。

 DateList
  --結果:{1997, 4, 10, 12, 21, 52, 5}

 このリストを使って文字列を再構成すればいいでしょう。



→  日付の扱い

稲垣@信州 さんからのコメント
( Thursday, April 10, 1997 12:46:59 )

 どうもありがとうございます。

 アドバイスを参考にして、色々試してみます。


田中求之 さんからのコメント
( Thursday, April 10, 1997 15:30:57 )

すでに狩野さんからコメントがついてますが、Tanaka's osax を使って

DateList with asStr

を使うと、その時点の日時を

{"97", "04", "10", "15", "29", "12", "05"}

のように、すべて2桁にそろえた文字列のリストにして返します。あとはこれを
加工すれば OK です。 EasyBBS の Recent の記録の日時の部分はこれで
処理してます。