#!/usr/bin/evn ruby # coding: utf-8 -*- x=Time.now.year def play(sound) spawn "ogg123 -q "+sound end def next1sec(sec) while sec == Time.now.sec sleep 0.03 # 秒が変わるまで待機する end Time.now.sec # 新しい秒を返しておく(次に使う) end while x==Time.now.year #年が同じ間繰り返す now=Time.now sec=now.sec just=now+60 #1分後 jh=just.hour #一分後の時 jm=just.min #一分後の分 y=now.year while Time.now.min !=jm sec=next1sec(sec) #秒の区切りまで待つ printf("%s\r", Time.now) # \r は行頭に戻る if sec%30 == 0 # 30で割り切れる0秒か30秒なら play("po.ogg") #ポーン elsif sec%30 == 20 # 余りが20なら30秒区切りの10秒前 play("katsu.ogg") if sec < 30 # 何時何分30秒 の予告 printf("只今から%d時%d分30秒をお知らせします\n", now.hour, now.min) else # 次の分の予告 printf("只今から%d時%d分ちょうどをお知らせします\n", jh, jm) end elsif sec%30 > 26 # 3秒前の「プ」 play("pu.ogg") else play("kotsu.ogg")# 特に何もないときは「コツ」 end end end puts("HAPPY NEW YEAR!") system("display -geometry +0+0 happy.jpg")