2017-07-03 6 views
0

ich einen variablen Ausgangshaltedatum haben wie folgt:Müssen minus 1 Tag ab einem Zeitpunkt gegeben

output = „20141220“

Ich brauche einen Tag aus ihm zu extrahieren und speichern sie in einer anderen Variablen , also etwas ähnliches wie unten:.

output1 = 20141219"

und wenn der Monat verändert, das heißt, das Datum in am 31. oder 1., soll gesorgt werden

date -d wird in der von mir verwendeten Version nicht unterstützt, alle Leads werden sehr geschätzt ...

+0

Hat Ihr System Perl oder PHP? https://stackoverflow.com/a/24919566/2836621 –

+0

Wenn Sie keine moderne 'date' Binärdatei haben, würde ich vermeiden, Bash/Shell-Skripte für diese Aufgabe zu verwenden - Datum-Zeit-Handhabung ist knifflig und fehleranfällig. Wie Mark vorschlägt, ein Werkzeug zu identifizieren, das Sie auf Ihrem System * haben *, das Datumsarithmetik für Sie durchführen und sich damit beschäftigen kann, anstatt zu versuchen, die Mathematik selbst zu machen. – dimo414

Antwort

-1

Sie könnten überprüfen, ob es der erste Tag des Monats ist, und wenn ja, können Sie das Datum einen Monat zurück setzen . Sie müssen auch überprüfen, ob es der erste Monat des Jahres ist und das Jahr zurückstellen, wenn es wahr ist.

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

aber wie stelle ich es ein: D: D – Vikas

+0

Bitte [tun Sie keine manuelle Datum Arithmetik] (http://infiniteundo.com/post/25326999628/falseshoods-programmers-believe-about-time-). – dimo414