1年の何分の何が終わったかカレンダー - 西尾泰和のはてなダイアリー にインスパイヤされて、awk で 1 年の何分の一かを計算してみます。 純粋に nawk だけでも解けないわけではないのですが、時間を扱う関数が gawk に用意されていますので、これを用いて解きます。 mktime() 関数を用いるとエポック時間に変換できます。 エポック時間を strftime() 関数の第 2 引数に入れることで日時に変換することができます。 #! /usr/local/bin/gawk -f # div_year.awk BEGIN { num_div = ARGV[1] ? ARGV[1] : 10; year = strftime("%Y"); next_year = year + 1; start_epoch = mktime(year " 01 01 00 00 00"); end_epo