スポンサーサイト
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
【--/--/-- --:--】 | スポンサー広告 | page top↑
年齢・干支・星座を計算するスクリプト
 最近、自分の歳が計算できなくなってきたのでMacに頼ろうと、年齢を計算するスクリプトを書いてみた。(もちろん、AppleScript ね。)
 物はついでということで汎用的に、西暦でも和暦でも自動判定し、満年齢と数え年、干支と星座まで求めるようにしてみた。
 満年齢は正確には誕生日の前日の12時を境にするらしいけど、そこは手抜きで誕生日からとしてしまったので、使用するときには要注意です。(笑)
星座の境も諸説有るようだけど、Yahoo!の星座占いのものを参考にしています。

 スクリプトのソースを掲載しますので、ユーティリティにある AppleScriptエディタにコピー&ペーストしてご利用ください。

ソースは続き
------------- 以下、AppleScript のソース --------------
-- 誕生日から基準日の満年齢を計算します。
-- 入力は西暦でも和暦でも自動判定します。(明治~平成まで)
--

display dialog "誕生日を入力(yyyy/mm/dd でも可)" default answer "昭和12年3月4日"
set BD to date gengo_check(text returned of result)

set TODAY to (current date) as text
set TD to (items 1 thru (offset of "日" in TODAY) of TODAY) as text
display dialog "基準日を入力" default answer TD
set KD to date gengo_check(text returned of result)

set NENREI to (round ((KD - BD) / (365.25 * 24 * 60 * 60)) rounding down) as text
set KAZOE to ((year of KD) - (year of BD) + 1) as text

set ETO to item (((year of BD) mod 12) + 1) of "申酉戌亥子丑寅卯辰巳午未"
set SEIZA to constellation(BD)

display dialog "満 " & NENREI & " 歳、" & ETO & "年、" & SEIZA & "です。(数え年で " & KAZOE & " 歳)"

on gengo_check(inData)
set ans to inData
set GENGO to (items 1 thru 2 of ans) as text
set DIF to 0
if GENGO = "明治" then set DIF to 1867
if GENGO = "大正" then set DIF to 1911
if GENGO = "昭和" then set DIF to 1925
if GENGO = "平成" then set DIF to 1988
if DIF > 0 then
set POS to offset of "年" in ans
set NEN to ((items 3 thru (POS - 1) of ans) as text) + DIF
set ans to ((NEN as text) & items POS thru (offset of "日" in ans) of ans) as text
end if
return ans
end gengo_check

on constellation(B_Day)
set ans to "Error"
set MM to month of B_Day as integer
set DD to day of B_Day as integer
if (MM = 3 and DD ≥ 21) then set ans to "牡羊"
if (MM = 4 and DD ≤ 19) then set ans to "牡羊"
if (MM = 4 and DD ≥ 20) then set ans to "牡牛"
if (MM = 5 and DD ≤ 20) then set ans to "牡牛"
if (MM = 5 and DD ≥ 21) then set ans to "双子"
if (MM = 6 and DD ≤ 21) then set ans to "双子"
if (MM = 6 and DD ≥ 22) then set ans to "蟹"
if (MM = 7 and DD ≤ 22) then set ans to "蟹"
if (MM = 7 and DD ≥ 23) then set ans to "獅子"
if (MM = 8 and DD ≤ 22) then set ans to "獅子"
if (MM = 8 and DD ≥ 23) then set ans to "乙女"
if (MM = 9 and DD ≤ 22) then set ans to "乙女"
if (MM = 9 and DD ≥ 23) then set ans to "天秤"
if (MM = 10 and DD ≤ 23) then set ans to "天秤"
if (MM = 10 and DD ≥ 24) then set ans to "蠍"
if (MM = 11 and DD ≤ 21) then set ans to "蠍"
if (MM = 11 and DD ≥ 22) then set ans to "射手"
if (MM = 12 and DD ≤ 21) then set ans to "射手"
if (MM = 12 and DD ≥ 22) then set ans to "山羊"
if (MM = 1 and DD ≤ 19) then set ans to "山羊"
if (MM = 1 and DD ≥ 20) then set ans to "水瓶"
if (MM = 2 and DD ≤ 18) then set ans to "水瓶"
if (MM = 2 and DD ≥ 19) then set ans to "魚"
if (MM = 3 and DD ≤ 20) then set ans to "魚"
return ans & "座"
end constellation
------------------------ ここまで ------------------
スポンサーサイト
【2010/01/21 21:40】 | Mac好き | トラックバック(0) | コメント(1) | page top↑
<<iPhoneのスタンドを自作。安くて簡単。 | ホーム | iPhoneデベロッパプログラムの更新にハマる>>
コメント
承認待ちコメント
このコメントは管理者の承認待ちです
【2010/01/25 19:01】 | #[ 編集] | page top↑
コメントの投稿














管理者にだけ表示を許可する

トラックバック
トラックバックURL
→http://ynomura.blog47.fc2.com/tb.php/666-aa2a1810
この記事にトラックバックする(FC2ブログユーザー)
| ホーム |
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。