Portál AbcLinuxu, 17. dubna 2026 10:06


Dotaz: Date - unix - operace

6.6.2002 15:40 Jozka Cerny
Date - unix - operace
Přečteno: 379×
Odpovědět | Admin
Da se lehce, pouze prostednictvim unixu, nikoliv prostrednictvim programu v c++. pracovat s s prikazem date. Konkretne bych potreboval k systemovemu datu odecist den a pridat mesic. Dekuji vsem za odpoved
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

6.6.2002 15:48 Jozef Vondrák | skóre: 19
Rozbalit Rozbalit vše Date - unix - operace
Odpovědět | | Sbalit | Link | Blokovat | Admin
Umis v shellu?
6.6.2002 15:51 Cerny Jozka
Rozbalit Rozbalit vše Date - unix - operace
neco jako lepsi amater (naspat skript... jo), spis jsem databazista
6.6.2002 15:55 Jozef Vondrák | skóre: 19
Rozbalit Rozbalit vše Date - unix - operace
A jaky ma byt vysledny format?
6.6.2002 16:05 Cerny Jozka
Rozbalit Rozbalit vše Date - unix - operace
DATUM=`date +%Y%m%d-%H%M` ; v nejhorsim pripade i bez HM. Z unixu spustim sql s vystupem do souboru ABCDS_DATUM.out .Datum je dynamicke, kazdy den jine :))) a po kazdem spusteni potrebuji promenou datum upravit (1. odecist den, 2. pricist mesic).
6.6.2002 16:41 Jozef Vondrák | skóre: 19
Rozbalit Rozbalit vše Date - unix - operace
#!/bin/bash
DD=`date +%d`
RR=`date +%Y`
MM=`date +%m`
M=`date +%M`
H=`date +%H`

# prictu mesic
case $MM in
01 ) MM=02 ;;
02 ) MM=03 ;;
03 ) MM=04 ;;
04 ) MM=05 ;;
05 ) MM=06 ;;
06 ) MM=07 ;;
07 ) MM=08 ;;
08 ) MM=09 ;;
09 ) MM=10 ;;
10 ) MM=11 ;;
11 ) MM=12 ;;
12 ) MM=01; RR=`expr $RR + 1`;;
esac

# odectu den
DD=`expr $DD - 1`

# opravim na 0n
case $DD in
1 ) DD=01;;
2 ) DD=02;;
3 ) DD=03;;
4 ) DD=04;;
5 ) DD=05;;
6 ) DD=06;;
7 ) DD=07;;
8 ) DD=08;;
9 ) DD=09;;
esac

# opravim nesmyslne datum
if [ $DD = "0" ];
then
case $MM in
01 ) MM=12; DD=31; RR=`expr $RR - 1`;;
02 ) MM=01; DD=31 ;;
03 ) MM=02; DD=28 ;;
04 ) MM=03; DD=31 ;;
05 ) MM=04; DD=30 ;;
06 ) MM=05; DD=31 ;;
07 ) MM=06; DD=30 ;;
08 ) MM=07; DD=31 ;;
09 ) MM=08; DD=31 ;;
10 ) MM=09; DD=30 ;;
11 ) MM=10; DD=31 ;;
12 ) MM=11; DD=30 ;;
esac
fi

VYSLEDEK="$RR$MM$DD-$H$M"
echo $VYSLEDEK

# a to je vse pratele
6.6.2002 16:56 Cerny Jozka
Rozbalit Rozbalit vše Date - unix - operace
dekuji mnohokrat, okamzite to vyzkousim :)) jen jsem si myslel, ze to pujde trochu jednoduseji, napr. v DB: sysdate+1 = pricte jeden den :)) diky moc za cas!
6.6.2002 17:00 Jozef Vondrák | skóre: 19
Rozbalit Rozbalit vše Date - unix - operace
Jednoduseji to urcite jde, ale nikdo nevi jak :-)
5.1.2004 12:17 Martin Svihalek
Rozbalit Rozbalit vše Date - unix - operace
#!/bin/bash # aktualni datum - 1 den + 1 mesic DATUM=`date --date='1 day ago 1 month' +%Y%m%d-%H%M` echo $DATUM

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.