#!/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).