Autore Topic: Da Timestamp unix a data civile.  (Letto 1272 volte)

0 Utenti e 1 Visitatore stanno visualizzando questo topic.

Offline Spaccafumo

  • Qui si usa PuppyLinux su hd.
  • cagnulin
  • **
  • Post: 75
    • Mostra profilo
    • E-mail
Da Timestamp unix a data civile.
« il: Agosto 25, 2014, 06:02:36 pm »
#!/bin/bash
uni=`Xdialog --title N.giorno --stdout --no-cancel --inputbox "Inserimento timestamp unix" 00 00`
[ -z "$uni" ] && uni=`date +%s` && fl=1
[ "$uni" -lt  "0" ] && exit 0
ora=$(((uni/3600)%24))
min=$(((uni/60)%60))
sec=$((uni%60))
anni=$((uni/31536000+1970))

bs=0
[ $(($anni%4)) -eq 0 -a $(($anni%100)) -ne 0 ] && bs=1
[ $(($anni%400)) -eq 0 ] && bs=1

echo $bs

giorni=$((uni/86400))
gann=$((uni/31536000*36525/100))
gann=$((giorni-gann))

mesi=(\0 \31 \59 \90 \120 \151 \181 \212 \243 \273 \304 \334)
[ $bs -eq 1 ] && mesi=(\0 \31 \60 \91 \121 \152 \182 \213 \244 \274 \305 \335)
nomi=(\Gennaio \Febbraio \Marzo \Aprile \Maggio \Giugno \Luglio \Agosto \Settembre \Ottobre \Novembre \Dicembre)

for n in 0 1 2 3 4 5 6 7 8 9 10 11; do
if [ $gann -gt ${mesi[n]} ];then
m=${nomi[n]};g=$(($gann+$fl - ${mesi[n]}));y=$anni
fi
done
printf -v ora "%02d:%02d:%02d\n" $ora $min $sec
Xdialog --title $((gann+fl)) --msgbox "$uni\n$ora $g $m $y"  00 00


#se non si inserisce manualmente la timestamp unix ritorna quella del momento (il tempo è sempre UTC).
« Ultima modifica: Settembre 05, 2014, 10:20:46 am da Spaccafumo »
...
Qui si usa PuppyLinux su hd.

 

Iscriviti alla newsletter

Ricevi le notizie più importanti direttamente nella tua casella email (premi invio dopo l'indirizzo)