Feel Physics Backyard

HoloLensの出張授業をする会社で、教材を開発しています

090624-朝、家を出るまであと何分?を表示するrubyスクリプト

少し前に「今寝ると睡眠時間はどれくらいなのか」を表示するスクリプトRubyで書いてみた。今回は、前回の機能に追加して、朝、家を出るまであと何分あるのかを表示するようにした。稚拙なスクリプトだが、遅刻癖のある方は試してみると良いかもしれない。

 

例によって使い方は、タスクスケジューラ(プログラム>アクセサリ>システムツール)にスクリプトを登録する。私は午前7時から8時まで5分おきに実行し、午後8時から11時まで30分おきに実行している。

 

 

 

now = Time.now

# 起床時刻は翌日の6時30分

getup_time = Time.local(now.year, now.month, now.day + 1, 6, 30)

# 準備開始時刻は当日の7時20分

prepare_time = Time.local(now.year, now.month, now.day, 7, 20)

# 出発時刻は当日の7時30分

going_time = Time.local(now.year, now.month, now.day, 7, 30)

 

# 現在時刻を表示して1秒待つ

puts "現在時刻:"

puts now.strftime("%H 時 %M 分")

puts

sleep 1

 

class TimeLength

def initialize(time)

@seconds = time - Time.now

end

def format

 

flag = "あと "

if @seconds < 0

@seconds = -@seconds

flag = "《超過》 "

end

 

minutes = (@seconds / 60).round

hours = (minutes / 60).round

minutes = minutes % 60

 

flag + hours.to_s + " 時間 " + minutes.to_s + " 分"

end

end

 

case

# 午前8時以前ならば

when now.hour <= 8

# 現在時刻を表示して1秒待つ

ptl = TimeLength.new(prepare_time)

puts "準備開始時刻まで:"

puts ptl.format

puts

sleep 1

 

# 当日の起床時刻までの時間を表示

gtl = TimeLength.new(going_time)

puts "出発時刻まで:"

puts gtl.format

puts

sleep 1

 

# 午前8時以降ならば

when now.hour > 8

# 翌日の起床時刻までの時間を表示

utl = TimeLength.new(getup_time)

puts "起床時刻まで:"

puts utl.format

sleep 1

end

 

sleep 3