Ansatzの備忘録

勉強したことあるいはふと思い立ったこと

シェルワンライナー160本ノック問題69

問題69 うるう秒

うるう秒があった日を出力する問題だった。うるう秒がコンピュータ上でどう表現されているのかをきちんと理解できていなかったので解けなかった。

解答例は

printf "%s 9 1sec ago\n" {1970..2017}-{01,07}-01 | TZ=right/Japan date -f- | grep :60

となる。うるう秒は59分60秒と表示されることを生かしている。答えを聞けばずいぶん簡単に思えるが自分で答えるのはやっぱり難しい。

そういえばうるう秒の調整は3月または9月末にも入ることがあるらしいがそれは考慮しなくてよかったのかと思い、改めてワンライナーを走らせてみたが結果に変わりはなかったのでよしとする。