Hinweis: Das Forum wird geschlossen! Neue Registrierungen sind nicht mehr möglich!

 Zurück zu Pro-Linux   Foren-Übersicht   FAQ     Suchen    Mitgliederliste
Einen Tag zurück rechnen

 
Neuen Beitrag schreiben   Auf Beitrag antworten    Pro-Linux Foren-Übersicht -> Sonstiges
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Christian
Gast





BeitragVerfasst am: 04. Nov 2002 18:47   Titel: Einen Tag zurück rechnen

Hallo Ihr,

grosses Problem, mit date kann ich mir ja Datum, Tag, etc
aurechnen lassen. Wie kann ich mir den Tag davor ausrechnen
lassen? Tag-1, aber was ist wenn es der 1. ist?

Bitte um Hilfe

Danke im Vorraus


Gruss Christian
 

Jochen
Gast





BeitragVerfasst am: 05. Nov 2002 9:24   Titel: Re: Einen Tag zurück rechnen

Das Tolle an diesem Forum ist, dass man selbst als Antwortender immer noch lernt. Die Lösung für Dein Problem war mir bis vor kurzem selber unbekannt.

code:
date -d yesterday
Formatstrings kann man natürlich auf mit angeben. Wahrscheinlich ist diese Lösung allerdings nicht sehr portabel; es scheint eine GNU-date-Erweiterung zu sein.

Jochen
 

Christian
Gast





BeitragVerfasst am: 05. Nov 2002 13:05   Titel: Re: Einen Tag zurück rechnen

Hallo Jochen,

genau das ist ads Problem. Es geht nur mit GNU date.
Brauche das aber ohne Neuinstallationen unter Sun
das Yesterday habe ich selbst gefunden.

Trotzdem Danke

Gruss Christian
 

Jochen
Gast





BeitragVerfasst am: 05. Nov 2002 13:15   Titel: Re: Einen Tag zurück rechnen

Nu je, das wäer ja mal eine interessante Information für's erste Posting gewesen, hm? Meine Glaskugel ist nämlich ziemlich trübe heute...

Ist perl auf der Sun installiert? Dann kannst Du im Perl-Faq eine Methode dazu nachlesen, zu finden mittels:
code:
perldoc -q yesterday
(Aber nicht als root.) Alles andere müsste man scheinbar doch in Handarbeit basteln...

Jochen
 

rattengift
Gast





BeitragVerfasst am: 05. Nov 2002 22:21   Titel: Re: Einen Tag zurück rechnen

> mit date kann ich mir ja Datum, Tag, etc aurechnen lassen. Wie kann ich mir den Tag davor ausrechnen lassen? Tag-1, aber was ist wenn es der 1. ist?

gibt es unter solaris (welche shell ist das denn, korn?) auch arrays wie in bash? damit liesse sich das recht einfach formulieren. in bash kann man schreiben:
TAGE=(31 28 31 30...etc); printf "Januar hat ${TAGE[0]} Tage", und der rest wäre damit recht einfach zu machen (pseudocode):
code:

# y, m, d = aus date holen (+%Y/m/d).
tage=(31 28 ...)

if (d > 1)
yg=y
mg=m
dg=d-1
else # tag 1
if (m > 1)
yg=y
mg=m-1
dg=tage [mg-1]
else # tag 1, monat 1
yg=y-1
mg=12
dg=tage [mg-1] # == 31
fi
fi

das eigentliche problem (und hier noch nicht berücksichtigt) sind schaltjahre. dafür gibts aber einfache algorithmen im internet. aber das alles in shell zu programmieren ist trotzdem keine schöne sache. wie jochen sagte, ist perl wohl die bessere wahl.
 

Beiträge vom vorherigen Thema anzeigen:   
     Pro-Linux Foren-Übersicht -> Sonstiges Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehen Sie zu:  

Powered by phpBB © phpBB Group
pro_linux Theme © 2004 by Mandaxy