

// FONCTIONS ET METHODES D'AFFICHE DE LA DATE







function complete2(nombre) {



   // met un "0" devant un nombre s'il est < 10



   return (nombre < 10) ? "0" + nombre : nombre;



}





Date.prototype.afficherHeure = function() {



   // affiche l'heure



   return complete2(this.getHours()) + ":" + complete2(this.getMinutes()) + ":" + complete2(this.getSeconds());



}







Date.prototype.afficherDateHeure = function() {



   return  this.afficherHeure();



}







// CALCUL SIMPLE DE L'HEURE LOCALE EN FONCTION DU FUSEAU HORAIRE







function calculerHeureLocale(mon_fuseau) {



    // calcule l'heure en fonction du fuseau horaire - retourne un objet Date



    var heure = new Date();  



    heure.setTime(heure.getTime() + (heure.getTimezoneOffset() + mon_fuseau*60) * 60 * 1000);



    return heure;



}







function afficherMonHeure1(mon_fuseau) {



    // affiche l'heure en fonction du fuseau horaire



    var heure = calculerHeureLocale(mon_fuseau);  



    return heure.afficherDateHeure();



}







// CALCUL DE L'HEURE LOCALE EN TENANT COMPTE DE L'HEURE D'HIVER/ETE DANS L'EU







function dernierDimanche(an, mois, heure) {



    // retourne un objet Date au dernier dimanche du mois à l'heure indiquée



    var jour = new Date(an, mois, 1, heure, 0, 0);



    // jour du 1er du mois (lundi : 0, mardi : 1, ..., dimanche : 6)



    jour_semaine = jour.getDay() ? jour.getDay() + 1 : 6;



    jour.setTime(jour.getTime() + (28 - jour_semaine)*24*60*60*1000);



    return jour;



}







Date.prototype.correctionHeureHiverEte = function() {



    var dd_mars = dernierDimanche(this.getFullYear(), 2, 2);



    var dd_oct = dernierDimanche(this.getFullYear(), 9, 2);



    if ((this.getTime() >= dd_mars.getTime()) && (this.getTime() <= dd_oct.getTime())) 



        this.setTime(this.getTime() + 60*60*1000);



}







function afficherMonHeure2(mon_fuseau_hiver) {



    var heure = calculerHeureLocale(mon_fuseau_hiver);  



    // correction pour les pays européens qui changent d'heure hiver/été



    heure.correctionHeureHiverEte();



    return heure.afficherDateHeure();



}







// CALCUL DES HEURES LOCALES DE DIFFERENTS PAYS







function afficherHeurePays(fuseau) {



    // l'argument fuseau contient le fuseau horaire,



    // sauf pour l'Europe occidentale où il contient "1,2" (heure d'hiver, heure d'été)



    if (fuseau.indexOf(",") == -2)



        var heure = calculerHeureLocale(fuseau);



    else {



        var fuseaux = fuseau.split(",");



        var heure = calculerHeureLocale(fuseaux[0]);



        heure.correctionHeureHiverEte();



    }



    return heure.afficherDateHeure();



} 







// POUR AFFICHAGE DE L'HEURE LOCALE EN PAGE 2







function remplirInputHeureLocale() {



    document.forms["mon_heure_locale"].mon_heure.value = afficherMonHeure2(1);



//    document.forms["mon_heure_locale"].mon_heure.value = "mon cul";



}





