Koudink
Dalsi
Seznam
Predchozi
Autor: JiMo (dar-k-ing) on 'Koudink'
Cas: Ne 29.1.2012 22:54.10
Titulek: kazdy prvni patek v mesici, NE DRIV :)

                                                                                 
Ahoj,
pracoval jsem na nejakem zalohovacim skriptu, s tim, ze jsem potreboval udelat 
rotaci jednou mesicne, a to v patek (cronuje se denne vecer). Dalo se to 
udelat pres nejaky pomocny soubor, ale porad jsem si rikal, ze to musi jit i 
stavove - proste podle dnu v tydnu a dnu v mesici. A vida, po asi 
dvouhodinovem premysleni jsem to fakt dal. :)
 
Takze - leze mi z toho identifikator stylem 2012-01, a to tak, ze "mesic" 
konci az ten prvni patek dalsiho mesice. Tj. ted napriklad "2012-01" skonci 
az 2.2. a od 3.2. bude "2012-02".
 
Pokud by nekdo chtel resit podobnou zalezitost, zde se podelim o skript:
 
#!/bin/bash
 
# nedele je 0, sobota je 6
DAY_OF_WEEK=`date '+%w'`
DAY_OF_MONTH=`date '+%d'`
MONTH=`date '+%m'`
YEAR=`date '+%Y'`
 
# "Vzdalenost" od posledniho patku
if [ $DAY_OF_WEEK -lt 5 ]
  then LAST_FRIDAY_AGO=$[$DAY_OF_WEEK + 2]
  else LAST_FRIDAY_AGO=$[$DAY_OF_WEEK - 5]
fi
 
# Chceme, aby novy mesic (a plna zaloha) zacal vzdy 
# prvni patek v mesici. Takze zde pocitame, zda jde 
# jeste o stary mesic - tzn. je zacatek noveho mesice,
# ale jeste nebyl patek
 
if [ $[$LAST_FRIDAY_AGO - $DAY_OF_MONTH] -ge 0 ]
  then
    # Stale mame "stary mesic"
    if [ $MONTH = 01 ]
      then MONTH=12; YEAR=$[$YEAR-1]
      else MONTH=$[$MONTH-1]
      if [ $MONTH -lt 10 ]; then MONTH=0$MONTH; fi
    fi
fi
 
echo "$YEAR-$MONTH"
 
 
 
jimo:)
                  [ A project manager is a person who thinks
                    nine women can deliver a baby in one month. ]

Dalsi Seznam Predchozi


[ Domu | Prstik | O Piskovisti | Deticky | Nastenky | Koutky ]