Timeオブジェクトをいぢる

Time#now
現在の時間
Time#local
地方のオブジェクト
Time#at
指定した時間のオブジェクト
Time#wday
曜日を0(日曜)〜6(土曜)の整数で返す


Timeオブジェクト同士は「<」「>」など比較演算が使える。この場合、古いものが小さくなる。

File.mtimeが謎だったので、調べた。

File#mtime
mtime -> Time 
最終更新時刻を Time オブジェクトとして返します。 

他にもtimeメソッドを調べたら、atime(アクセス日/時)やctime(作成日/時)mtime(アクセス時刻と更新時刻を変更)もありました。

誕生日を入力し、その曜日と今まで生きてきた秒数を出すプログラムを書く問題があったので解きました。自分で書いたコードと解答が全然ちがったのでびっくりした。

  • chomp()関数使わなかった

解答では、誕生日を入力するさいchomp()で改行コードを削除するのですが、私が書いたコードにはchompコードを書いてませんでした。schomp()無くても大丈夫なんだけど、これはなんでだ?

# === 解答
ans = gets().chomp()
ret = Integer(ans)

# === 自分のコード
ans = gets()
ret = Integer(ans)
  • 入力された誕生日から曜日を出す時に、オブジェクトの記述を間違えた
# === false
birthday_wday = Time.wday(birthday)

# === true
birthday_wday = birthday.wday()

まだオブジェクトの事を理解してないんだろうな・・・。trueのbirthday.wday()の場合、birthdayのデータ使用してwday()で処理し、birthday_dayに入れる。falseの場合、引数birthdayを基に、Timeクラスを使用してwday()メソッドを処理するようにしたんだけれど。リファレンス見る限り、wday()にPARAMはないからこの書き方はダメなのか?う〜ん・・・

  • 配列が変な書き方をされている!
#{"日月火水目金土"[birthday.wday()]}

なんだこりゃ・・・こんなこともできるのか・・・。あまりこの書き方は好きじゃないなぁ。後に変更があった時に対処しにくいから。