如何从命令行打印截止日期?

时间:2011-06-08 16:24:50

标签: bash date

我即将于2011年11月1日截止,我希望每次在MacBook Pro上打开终端时打印截止日期。我已将此添加到我的.profile

python -c "from datetime import date; print '%s days until deadline.' % (date(2011,11,1) - date.today()).days"

每当我创建一个新的终端窗口时,都会打印146 days until deadline.

这解决了我的需求,但我想知道其他语言中的单行是什么样的,或者是否有办法使用bash或标准posix命令行工具来执行相同的任务。

2 个答案:

答案 0 :(得分:6)

echo $(expr '(' $(date -d 2011/11/1 +%s) - $(date +%s) + 86399 ')' / 86400) " days until deadline"

答案 1 :(得分:4)

使用awk你可以这样做:

echo "2011 11 01" | awk '{dt=mktime($0 " 00 00 00")-systime(); print int(dt/86400) " days";}'

输出(截至2011年6月8日)

145 days

更新(在代码下面使用时差四舍五入)

awk '{dt=mktime($0 " 00 00 00")-systime(); d=dt/86400+0.5; printf("%d\n",d);}'