<!-- Data stellare v1.1.1


// Copyright Pierluigi Lenoci 2000-2001
// pierluigi@lenoci.org
// www.lenoci.org
// www.fedeegigi.com


// Io ho utilizzato il sistema di Wilford Nusser
// Il valore per ogni anno è    : 1000,0019                             = 1000
// Il valore per ogni giorno è  : 2,73224043716                         = 2,732
// Il valore per ogni ora è     : 0,113843351547916666666666666666667   = 0,114
// Il valore per ogni minuto è  : 0.0018973891924722222222222222222222  = 0,0019


// N.B. Avendo un approssimazione di una cifra decimale può avere un incertezza di + o - un ora.
// Aumentando il numero delle cifre decimali si ottiene un risultato con meno incertezza fino a 
// + o - un secondo.


function Stardate()
        {


        var giorni=[31,28,31,30,31,30,31,31,30,31,30,31];
        var today = new Date();


        var year   = parseInt(today.getYear());
        var mese   = parseInt(today.getMonth());
        var giorno = parseInt(today.getDate());
        var ora    = parseInt(today.getHours());
        var minuti = parseInt(today.getMinutes());
        // var secondi= parseInt(today.getSeconds()); Omesso xchè inutile


        // Patch x Millennium Bug! ;)
        if (year<2000) // Se la data restituita è un numero tra 1 e 1999
                {
                // Se la data è superiore a 1900 vuol dire che è già corretta
                if (year<1900)
                        {
                        // Altrimenti è sbagliata visto che prima del 1900 non c'erano i PC.
                        // Se la data è inferiore a 80 si assume che rappresenti una data dopo il 2000.
                        // Se invece è superiore al 80 si assume che rappresenti una data tra il 1900 e il 2000
                        // Ho scelto 80 perchè la data di un sistema PC non può essere < del 1/1/80
                        if (year<80)
                                {
                                year+=2000;
                                }
                        else
                                {
                                year+=1900;
                                }
                        }
                }


        var gg=365;


        var anno = year - 2323;
        
        // BugReport
        // Non funziona solo nel caso di anni tipi il 1000 o il 3000
        // che comunque sono lontani dai nostri giorni e da i giorni
        // in cui è ambientata la nostra saga preferita.
        // La data 1000 è oltretutto impossibile visto che il PC al massimo va indietro fino al 1980.
        // Per il 3000 basta mettere un controllo diverso per la bisestilità


        if ((year%4) == 0) // Controllo bisestile
                {
                giorni[1]=29;
                gg=366;
                }


        var i=0;
        for (;i<mese;i++)
                {
                giorno = giorno + giorni[i];
                }


        with (Math)
                {


                var ds=(anno+(giorno/gg))*10000;


                // Aggiungo ore e minuti moltiplicati x 10
                // I secondi li tralascio perchè ininfluenti.
                // N.B. Ininfluenti se decido di avere una sola cifra decimale.


                ds=ds+(ora*1.14)+(minuti*0.019);


                // Moltiplicando e poi dividendo x10 e ottengo che nel risultato ci sia una sola
                // cifra decimale.


                ds=round(ds)/10;


                // Scrive la data stellare
                // Commentando questa istruzione la funzione crea la variabile "ds"
                // che è globale alla pagina html in cui si include lo script.
                document.write(ds);


                }
        }
// --> 
