来年まであと何日
来年まであと何日? - みずぴー日記 にインスパイヤされて同じものを awk で解いています。
strftime() 関数には閏年かどうかを判定するものがなさそうなので、閏年判定のみ if 文で行い、あとは gawk の strftime() 関数に頼ります。
#! /usr/local/bin/gawk -f
# yearend.awk
# 来年まであと何日かを表示する
# usage: gawk -f yearend.awk
BEGIN {
year = strftime("%Y");
if ((year % 4) == 0 && (year % 100) != 0 || (year % 400) == 0) {
year_days = 366;
} else {
year_days = 365;
}
print year_days - strftime("%j");
}
もちろん、gawk 以外の awk でも計算できるのですが、なかなか面倒ですので、ここでは gawk に限定しておきます。 とりあえず、実行してみましょう。
$ gawk -f yearend.awk 80
今年もあと 80 日なんですね。 既に来年のカレンダーを販売しているお店も見かけるようになりました。


