BEGIN { BASEDATE="2011 02 02" ; DIW="Sun" ; BEF="2" ct=BASEDATE " 00 00 00" ct=mktime(ct) while (strftime("%a",ct) != DIW) { ct-=24*60*60 } ct-=BEF*24*60*60 print strftime("%Y-%m-%d %a",ct) }