2015-05-26 27 views
0

我通过两种日期的%Y%M%d和%Y引用%j(儒略日)如何将Julian日添加到循环中的日期?

#!/bin/bash 

set -e 

for d in {0..24}; 
     do day=$(date -d "20120207 +${d}days" +%Y-%m-%d); echo $day; 
       startday=$(date -d "2012038 +${d}" +%Y%j); echo $startday; 

done 

但试图循环,当我运行它,我得到这个错误:

2012-02-07 
date: invalid date `2012038 +0' 

我不知道什么是错的白衣它,我感谢帮助

回答

0

date命令不接受Julian日期为-d参数。像这样的工作,而不是?

#!/bin/bash 

set -e 

startdate="20120207" 

for d in {0..24}; do 
    day=$(date -d "${startdate} + ${d} days" +%Y-%m-%d); 
    echo $day; 

    startday=$(date -d "${startdate} + ${d} days" +%Y%j); 
    echo $startday; 
done 
+0

是的,它工作完美! :),我知道问题是试图将日期设置为Julian日本身。谢谢! – pepa

0

我的朋友,那不是朱利安日期。你应该查一下它,看看它是什么名字,包含Julian Day或Julian Date的名字。