2017-07-03 34 views
0

我有如下的可變輸出拿着日期的日期:需要減一天從給定的

輸出=「20141220」

我需要提取了一天了它並將其存儲在另一個變量即,類似下面:

輸出1 = 20141219"

,如果當月發生變化,即日期在31日或1,應當照顧

date -d的版本不支持我使用的,任何線索將不勝感激......

+0

您的系統有Perl或PHP嗎? https://stackoverflow.com/a/24919566/2836621 –

+0

如果您沒有現代'日期'二進制文件,我會避免使用Bash/shell腳本執行此任務 - 日期時間處理非常棘手且容易出錯。正如Mark所建議的那樣,在您的系統中確定一個可以爲您做日期算術的工具,然後調用它,而不是嘗試自己做數學。 – dimo414

回答

-1

你可以檢查它是否是該月的第一天,如果是這樣,你可以設置之日起一個月回。你還必須檢查它是否是一年中的第一個月,如果是,則將年份設置回。

if (dayofdate == 1) { 
    //set one month back 
    //set day of the month accordingly 
} else if (monthofdate == 1){ 
    //set one year back 
} 
+0

但我該如何設置它:D:D – Vikas

+0

請[不要做手動日期算術](http://infiniteundo.com/post/25326999628/falsehoods-programmers-believe-about-time)。 – dimo414