Date Format, N Days Ago
Below shows shell functions that wrap around these general scripting languages to determine the date format that is N days ago.
ago_perl()
{
# localtime return:
# Seconds past the minute
# Minutes past the hour
# Hours past midnight
# Day of the month
# Months past the start of the year
# Number of years since 1900
# Number of days since the start of the week (Sunday)
# Number of days since the start of the year
# Whether or not daylight savings is active
days=${1:-1}
perl -e "@t=localtime(time-86400*$days);\
printf('%4d-%02d-%02d', @t[5]+1900, @t[4]+1, @t[3])"
}
ago_tcl()
{
days=${1:-1}
echo "puts [clock format [expr [clock seconds] - $days*86400] \
-format {%Y-%m-%d}]" | tclsh
}
ago_python()
{
days=${1:-1}
python -c "import time, datetime
t=datetime.datetime.fromtimestamp(time.time()-86400*$days)
print '%4d-%02d-%02d' % (t.year,t.month,t.day)"
}
Here is how you can use any of these functions
$ago=`ago_perl 45` $echo "45 days ago is $ago" 45 days ago is 2009-08-12
Labels: Perl, python, shell script, Tcl



