datum von gestern ???

A

Animal

Jungspund
wie bekomm ich das datum von gestern ??? (speziell beim monatswechsel) :think:
 
Animal schrieb:
wie bekomm ich das datum von gestern ??? (speziell beim monatswechsel) :think:
date -d"one day ago" "+%d-%m-%Y"
date --version
date (coreutils) 5.2.1

siehe auch
man date:rtfm:

Gruß Wolfgang
 
hab wohl vergessen zu erwähnen das ich unter solaris 8 arbeite ...

und da gibts nur die optionen -u und -a und die machen was anderes X(
 
so ich hab mich mal hingesetzt und was gebastelt

ich geb keine garantie das es funktioniert ... :devil:

YEAR=`date +'%Y'`
MONTH=`date +'%m'`
DAY=`date +'%d'`
TODAY=$YEAR$MONTH$DAY
YESTERDAY=$(( $DAY - 1 ))
if [ $YESTERDAY -eq 0 ]
then
MONTH=$(( $MONTH - 1 ))
if [ $MONTH -eq 0 ]
then
MONTH=12
YEAR=$(( $YEAR - 1 ))
fi
case $MONTH in
1|3|5|7|8|10|12) DAY=31 ;;
4|6|9|11) DAY=30 ;;
2) if [ $(( $YEAR % 4 )) -eq 0 ]
then
if [ $(( $YEAR % 100 )) -eq 0 ]
then
if [ $(( $YEAR % 400 )) -eq 0 ]
then
DAY=29
else
DAY=28
fi
else
DAY=29
fi
else
DAY=28
fi ;;
*) echo "date error " ;;
esac
fi
YESTERDAY=$YEAR$MONTH$YESTERDAY
echo $TODAY
echo $YESTERDAY
 
Animal schrieb:
ich geb keine garantie das es funktioniert ... :devil:

YEAR=`date +'%Y'`
MONTH=`date +'%m'`
DAY=`date +'%d'`
TODAY=$YEAR$MONTH$DAY
YESTERDAY=$(( $DAY - 1 ))
if [ $YESTERDAY -eq 0 ]
then
MONTH=$(( $MONTH - 1 ))
if [ $MONTH -eq 0 ]
then
MONTH=12
YEAR=$(( $YEAR - 1 ))
fi
case $MONTH in
1|3|5|7|8|10|12) DAY=31 ;;
4|6|9|11) DAY=30 ;;
2) if [ $(( $YEAR % 4 )) -eq 0 ]
then
if [ $(( $YEAR % 100 )) -eq 0 ]
then
if [ $(( $YEAR % 400 )) -eq 0 ]
then
DAY=29
else
DAY=28
fi
else
DAY=29
fi
else
DAY=28
fi ;;
*) echo "date error " ;;
esac
fi
YESTERDAY=$YEAR$MONTH$YESTERDAY
echo $TODAY
echo $YESTERDAY


wie kann ich hier code einfügen ????
 
Mit welcher Version von date arbeitest du?
Hab hier kein Solaris, deshalb habe ich ja meine Version dazu geschrieben.
Naja dann halt mit perl ;)
perl -e 'print scalar localtime (time-(3600*24))'
Gruß Wolfgang
 
auf meinem system gehts auch so:
Code:
echo `TZ=MEZ23MESZ date`
 
mit:
Code:
echo `TZ=MEZ23MESZ date +"%d.%m.%y"`
 
Ihr seit super hier !

Vielen Dank!

Hatte zuvor in der man date nix gefunden.

Gruß
Blue
 
die eigentliche leistung brachte ja der kollege ninguno :]
das andere war nur "formatierung" :D

viel spaß noch ...
 
ninguno schrieb:
auf meinem system gehts auch so:
Code:
echo `TZ=MEZ23MESZ date`

sehr interessant - kann mir das MEZ... Zeugl mir mal bitte jemand ausdeutschen? :D
 
Code:
echo `TZ=MEZ23MESZ date`
damit wird vor der ausführung des date commands die TZ environment variable und damit die timezone gesetzt. normalerweise gilt in mitteleuropa TZ=MEZ-1MESZ ,das könnte man auch als UTC+1 interpretieren, wir sind 1h vor universal zeit. um das gestrige datum zu erhalten zähle ich einfach 24 stunden dazu, also TZ=MEZ23, das heisst wir sind nicht 1h vor sondern 23h nach universal zeit.
 
Hallo
klugschei*
Deshalb geht der Trick mit der Timezone auch nur innerhalb von +/- einem Tag.
Denn es gibt keine Zeitzone, die eine Verschiebung länger als 24h hat.:devil:
Aber man könnte natürlich die Hardwareuhr vor dem Aufruf verstellen, sozusagen an der Uhr drehen. Das bringt aber bei Echtzeitprogrammen unter Umständen Probleme mit sich.:D
Gruß Wolfgang
 
ach klar....jetzt verstehe ich das :rtfm:

VIELEN DANK euch beiden. :winke:
 
Zuletzt bearbeitet:

Ähnliche Themen

sed - Bitte um Unterstützung

Kernel Kaltstart / reboot?

Console I/O mit loggen

Dateien nach Bestandteil im Namen verschieben

solved Problem mit smtp (postfix) als send-only mta hinter NAT

Zurück
Oben