日付の引き算
gawk では mktime() 関数が追加されていますので、簡単に計算することもできます。実際には、エポックタイムからの経過秒数に直してから引き算を行います。
#! /usr/bin/gawk -f # usage: gawk -f dday.awk YYYY/MM/DD # input: formated day style (YYYY/MM/DD) # output: how long days before today BEGIN { split(ARGV[1], a_day, /\//); year = a_day[1]; month = a_day[2]; day = a_day[3]; now = systime(); delta_day = int((now - mktime(year " " month " " day " 00 00 00"))\ / (24 * 60 * 60)) + 1; print delta_day; }
$ gawk -f dday.awk 2007/11/1 26 $ gawk -f dday.awk 2007/11/26 1