0

我有一个日期格式为 YYYYMMDD 的文件。我想找到文件中日期与朱利安数当前日期之间的差异。

4

1 回答 1

0

我不确定我是否理解您的输出格式要求 - 日期可以是朱利安(年数和一年中的天数),但区别只是没有“朱利安”格式的天数。

我不知道如何在 shell 中摆弄日期,所以我会求助于 perl:

perl -e 'use POSIX qw(mktime); sub d2ts { return POSIX::mktime(0, 0, 0, 
substr($_[0],6,2),substr($_[0],4,2)-1,substr($_[0],0,4)-1900); } print 
int((time-d2ts($ARGV[0]))/86400), "\n";' '20131218'

==> 54

或者

perl -e 'use POSIX qw(mktime); sub d2ts { return POSIX::mktime(0, 0, 0, 
substr($_[0],6,2),substr($_[0],4,2)-1,substr($_[0],0,4)-1900); } print 
int((d2ts($ARGV[1])-d2ts($ARGV[0]))/86400), "\n";' '20131218' '20140210'

==> 54

第一个是将一次与“现在”进行比较,第二个是针对 2 个给定日期。

请注意,您可能必须设置 TZ=UTC,否则您可能会因夏季/冬季切换而损失一天。

于 2014-02-10T06:53:44.927 回答