Date 在UNIX中计算给定日期的天数

Date 在UNIX中计算给定日期的天数,date,unix,ksh,csh,Date,Unix,Ksh,Csh,我试图计算从1月1日到同一年中给定日期的天数。 UNIX命令的选项-d不起作用 date -d date: illegal option -- d Usage: date [-u] [+format] date [-u] [mmddhhmm[[cc]yy]] date [-a [-]sss.fff] 我正在用这个,但是太长了。 有没有简单的方法来计算天数 编辑 脚本的结果: $ ksh datecalc -a 2013 2 5 - 2013 1 1 $ 35 好吧

我试图计算从1月1日到同一年中给定日期的天数。 UNIX命令的选项-d不起作用

date -d
date: illegal option -- d
Usage: date [-u] [+format]
       date [-u] [mmddhhmm[[cc]yy]]
       date [-a [-]sss.fff]
我正在用这个,但是太长了。 有没有简单的方法来计算天数

编辑 脚本的结果:

$ ksh datecalc -a 2013 2 5 - 2013 1 1
$ 35

好吧,这可能有点牵强,但mysql客户端(或其他DB客户端)可以派上用场,因为它们有可靠且有良好文档记录的日期函数

$ mysql ..... --silent -e "select datediff('2013-02-05', '2013-01-01') from dual;"

35

$

在哪里。。。。。是您的连接选项。

如果已安装Perl,则可以执行以下操作:

perl -MPOSIX=strftime -le 'print strftime("%j",localtime)'
对于特定的一天,例如2月5日:

perl -MPOSIX=strftime -le '
    @d=(2013,2,5); 
    print strftime("%j",0,0,0,$d[2],$d[1]-1,$d[0]-1900)
'

date'+%j'
有用吗?旧的/供应商unix系统并不总是支持
-d
选项,正如您收到的用法消息所示。您可能会发现,支持
-d
的gnu日期实用程序安装在备用目录中。可能有助于添加您正在使用的Unix的标记。祝你好运。我正在使用Informix数据库。我已经解决了这个问题:()我的机器上安装了PerlV5.6.1,但当我运行命令时,结果是:找不到perl:command。当我运行脚本时,结果是:由于编译错误,在第7行的number of_of_days.pl附近的“-le”处,执行number of_of_days.pl被中止。@Cikson:number of_of_days.pl中有什么内容?
-le
被指定为命令行选项,而不是在perl脚本中。type-a perl/bin/type[6]:其中:指定的标志对此命令无效。
036