来年まであと何日

来年まであと何日? - みずぴー日記 にインスパイヤされて同じものを 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 日なんですね。 既に来年のカレンダーを販売しているお店も見かけるようになりました。

tag_gawk.pngtag_gawk.png