diff --git a/scripts/fonctions_annexes.js b/scripts/fonctions_annexes.js new file mode 100644 index 0000000..1414b66 --- /dev/null +++ b/scripts/fonctions_annexes.js @@ -0,0 +1,206 @@ +/* Fonctions Annexes */ + +// Vérifie si une valeur est vide +function isEmptyValue(value) { + if (value === '' || value === null || value === undefined) { + return true + } + else { + return false + } +} + +// Formate les nombres avec des espaces (ex : 76120 = 76 120) +function formatNumberResult(num) { + if (!isNaN(num)) + { + if(num >= 1000) + { + return num.toString().replace(/(\d)(?=(\d{3})+(?!\d))/g, '$1 '); + } + else + { + return num; + } + } + else + { + return messageError; + } +} + +// Convertit les puissances de 10 en nombre (ex: 1e+20 = 100 000 000 000 000 000 000), ne peut pas dépasser 1e+20 (21 ne fonctionne pas) +function convertPuissanceToNumber(num) { + if(!isNaN(num)) + { + let number = formatNumberResult((num).toFixed(0)); + return number; + } + else + { + return messageError; + } +} + +// Majuscule à la 1ère lettre d'une string +function capitalize (s) { + if (typeof s !== 'string') return '' + return s.charAt(0).toUpperCase() + s.slice(1) +} + +// Donne la date et l'heure selon l'UTC (Universal Time Coordinated) +function dateTimeUTC(utc) { + if(typeof utc === 'string' && utc.length >= 1 && utc[0] === '-' || '0' || '+' || !isNaN(parseFloat(utc[0]))) + { + if (utc[0] === '0' && utc.length === 1) + { + let enteredOffset = 0; + return showDateTime(enteredOffset); + } + else if (utc[0] === '+' || !isNaN(parseFloat(utc[0]))) + { + if (utc.length === 2 && utc[0] === '+') + { + // Entered offset + let enteredOffset = parseFloat(utc[1])*60; + timeNow.setMinutes(timeNow.getMinutes() + enteredOffset); + return showDateTime(enteredOffset); + } + else if (utc.length === 3 && utc[0] === '+') + { + // Entered offset + let enteredOffset = parseFloat(utc[1] + utc[2])*60; + timeNow.setMinutes(timeNow.getMinutes() + enteredOffset); + return showDateTime(enteredOffset); + } + else if (utc.length === 1 && !isNaN(parseFloat(utc[0]))) + { + // Entered offset + let enteredOffset = parseFloat(utc[0])*60; + timeNow.setMinutes(timeNow.getMinutes() + enteredOffset); + return showDateTime(enteredOffset); + } + else if (utc.length === 2 && !isNaN(parseFloat(utc[0]))) + { + // Entered offset + let enteredOffset = parseFloat(utc[0] + utc[1])*60; + timeNow.setMinutes(timeNow.getMinutes() + enteredOffset); + return showDateTime(enteredOffset); + } + else + { + let enteredOffset = 0; + return showDateTime(enteredOffset); + } + } + else if (utc[0] === '-') + { + if (utc.length === 2 && utc[0] === '-') + { + // Entered offset + let enteredOffset = - parseFloat(utc[1])*60; + timeNow.setMinutes(timeNow.getMinutes() + enteredOffset); + return showDateTime(enteredOffset); + } + else if (utc.length === 3 && utc[0] === '-') + { + // Entered offset + let enteredOffset = - parseFloat(utc[1] + utc[2])*60; + timeNow.setMinutes(timeNow.getMinutes() + enteredOffset); + return showDateTime(enteredOffset); + } + else + { + let enteredOffset = 0; + return showDateTime(enteredOffset); + } + } + else + { + let enteredOffset = 0; + return showDateTime(enteredOffset); + } + } + else if (utc === '' || !utc || utc === undefined) + { + utc = false; + let enteredOffset = 0; + return showDateTime(enteredOffset); + } + else + { + let enteredOffset = 0; + return showDateTime(enteredOffset); + } +} + +// Affiche la date et l'heure (format : dd/mm/yyyy - 00:00:00) +function showDateTime(enteredOffset) { + year = timeNow.getFullYear(); + month = ('0'+(timeNow.getMonth()+1)).slice(-2); + day = ('0'+timeNow.getDate()).slice(-2); + hour = ('0'+timeNow.getHours()).slice(-2); + minute = ('0'+timeNow.getMinutes()).slice(-2); + second = ('0'+timeNow.getSeconds()).slice(-2); + + showDateTimeValue = day + "/" + month + "/" + year + " - " + hour + ":" + minute + ":" + second; + timeNow.setMinutes(timeNow.getMinutes() - enteredOffset) + + return showDateTimeValue; +} + +// Affiche l'heure en temps réel +function realDateTime(id) +{ + realDateTimeNow = new Date; + year = realDateTimeNow.getFullYear(); + month = ('0'+(realDateTimeNow.getMonth()+1)).slice(-2); + day = ('0'+realDateTimeNow.getDate()).slice(-2); + hour = ('0'+realDateTimeNow.getHours()).slice(-2); + minute = ('0'+realDateTimeNow.getMinutes()).slice(-2); + second = ('0'+realDateTimeNow.getSeconds()).slice(-2); + + resultat = hour + ":" + minute + ":" + second; + + document.getElementById(id).innerHTML = resultat; + setTimeout('realDateTime("'+id+'");','1000'); + return true; +} + +// Récupére le décalage en secondes à partir de l'heure UTC grâce à l'API +function timeZone(json) { + if(json.name === 'Moscou') // Il faut ajouter + 1h de décallage à Moscou + { + timeZoneValue = (json.timezone / 60 / 60) + 1; + } + else + { + timeZoneValue = json.timezone / 60 / 60; + } + let timeZoneStr = timeZoneValue.toString(); + return dateTimeUTC(timeZoneStr); +} + +// Vérifie si une date est valide par rapport à la date d'aujourd'hui +function isValidDate(s) { + + // Date à vérifier + let toVerifyDate = s.split('/'); + let splitedToVerifyDate = toVerifyDate[2] + '-' + (parseInt(toVerifyDate[1]) + 1) + '-' + toVerifyDate[0]; + let msToVerifyDate = Date.parse(splitedToVerifyDate); + + // Date courante + let currentDate = dateTimeUTC(0); + currentDate = currentDate.substr(0,10); + let currentDateSplited = currentDate.split('/'); + let currentDateFormat = currentDateSplited[2] + '-' + currentDateSplited[1] + '-' + currentDateSplited[0]; + let msCurrentDate = Date.parse(currentDateFormat); + + if(msToVerifyDate <= msCurrentDate) { + return true; + } else if(msToVerifyDate > msCurrentDate) { + return false; + } else { + return messageError; + } +} \ No newline at end of file diff --git a/scripts/fonctions.js b/scripts/fonctions_principales.js similarity index 63% rename from scripts/fonctions.js rename to scripts/fonctions_principales.js index c906117..8f8cb7c 100644 --- a/scripts/fonctions.js +++ b/scripts/fonctions_principales.js @@ -1,4 +1,3 @@ -///////////////////////////////////////////////////////////////// /* Fonctions Principales */ // Requête à l'API openweathermap.org @@ -261,212 +260,4 @@ function binToUtf8(s){ } catch (error) { return s; } -} - -///////////////////////////////////////////////////////////////// -/* Fonctions Annexes */ - -// Vérifie si une valeur est vide -function isEmptyValue(value) { - if (value === '' || value === null || value === undefined) { - return true - } - else { - return false - } -} - -// Formate les nombres avec des espaces (ex : 76120 = 76 120) -function formatNumberResult(num) { - if (!isNaN(num)) - { - if(num >= 1000) - { - return num.toString().replace(/(\d)(?=(\d{3})+(?!\d))/g, '$1 '); - } - else - { - return num; - } - } - else - { - return messageError; - } -} - -// Convertit les puissances de 10 en nombre (ex: 1e+20 = 100 000 000 000 000 000 000), ne peut pas dépasser 1e+20 (21 ne fonctionne pas) -function convertPuissanceToNumber(num) { - if(!isNaN(num)) - { - let number = formatNumberResult((num).toFixed(0)); - return number; - } - else - { - return messageError; - } -} - -// Majuscule à la 1ère lettre d'une string -function capitalize (s) { - if (typeof s !== 'string') return '' - return s.charAt(0).toUpperCase() + s.slice(1) -} - -// Donne la date et l'heure selon l'UTC (Universal Time Coordinated) -function dateTimeUTC(utc) { - if(typeof utc === 'string' && utc.length >= 1 && utc[0] === '-' || '0' || '+' || !isNaN(parseFloat(utc[0]))) - { - if (utc[0] === '0' && utc.length === 1) - { - let enteredOffset = 0; - return showDateTime(enteredOffset); - } - else if (utc[0] === '+' || !isNaN(parseFloat(utc[0]))) - { - if (utc.length === 2 && utc[0] === '+') - { - // Entered offset - let enteredOffset = parseFloat(utc[1])*60; - timeNow.setMinutes(timeNow.getMinutes() + enteredOffset); - return showDateTime(enteredOffset); - } - else if (utc.length === 3 && utc[0] === '+') - { - // Entered offset - let enteredOffset = parseFloat(utc[1] + utc[2])*60; - timeNow.setMinutes(timeNow.getMinutes() + enteredOffset); - return showDateTime(enteredOffset); - } - else if (utc.length === 1 && !isNaN(parseFloat(utc[0]))) - { - // Entered offset - let enteredOffset = parseFloat(utc[0])*60; - timeNow.setMinutes(timeNow.getMinutes() + enteredOffset); - return showDateTime(enteredOffset); - } - else if (utc.length === 2 && !isNaN(parseFloat(utc[0]))) - { - // Entered offset - let enteredOffset = parseFloat(utc[0] + utc[1])*60; - timeNow.setMinutes(timeNow.getMinutes() + enteredOffset); - return showDateTime(enteredOffset); - } - else - { - let enteredOffset = 0; - return showDateTime(enteredOffset); - } - } - else if (utc[0] === '-') - { - if (utc.length === 2 && utc[0] === '-') - { - // Entered offset - let enteredOffset = - parseFloat(utc[1])*60; - timeNow.setMinutes(timeNow.getMinutes() + enteredOffset); - return showDateTime(enteredOffset); - } - else if (utc.length === 3 && utc[0] === '-') - { - // Entered offset - let enteredOffset = - parseFloat(utc[1] + utc[2])*60; - timeNow.setMinutes(timeNow.getMinutes() + enteredOffset); - return showDateTime(enteredOffset); - } - else - { - let enteredOffset = 0; - return showDateTime(enteredOffset); - } - } - else - { - let enteredOffset = 0; - return showDateTime(enteredOffset); - } - } - else if (utc === '' || !utc || utc === undefined) - { - utc = false; - let enteredOffset = 0; - return showDateTime(enteredOffset); - } - else - { - let enteredOffset = 0; - return showDateTime(enteredOffset); - } -} - -// Affiche la date et l'heure (format : dd/mm/yyyy - 00:00:00) -function showDateTime(enteredOffset) { - year = timeNow.getFullYear(); - month = ('0'+(timeNow.getMonth()+1)).slice(-2); - day = ('0'+timeNow.getDate()).slice(-2); - hour = ('0'+timeNow.getHours()).slice(-2); - minute = ('0'+timeNow.getMinutes()).slice(-2); - second = ('0'+timeNow.getSeconds()).slice(-2); - - showDateTimeValue = day + "/" + month + "/" + year + " - " + hour + ":" + minute + ":" + second; - timeNow.setMinutes(timeNow.getMinutes() - enteredOffset) - - return showDateTimeValue; -} - -// Affiche l'heure en temps réel -function realDateTime(id) -{ - realDateTimeNow = new Date; - year = realDateTimeNow.getFullYear(); - month = ('0'+(realDateTimeNow.getMonth()+1)).slice(-2); - day = ('0'+realDateTimeNow.getDate()).slice(-2); - hour = ('0'+realDateTimeNow.getHours()).slice(-2); - minute = ('0'+realDateTimeNow.getMinutes()).slice(-2); - second = ('0'+realDateTimeNow.getSeconds()).slice(-2); - - resultat = hour + ":" + minute + ":" + second; - - document.getElementById(id).innerHTML = resultat; - setTimeout('realDateTime("'+id+'");','1000'); - return true; -} - -// Récupére le décalage en secondes à partir de l'heure UTC grâce à l'API -function timeZone(json) { - if(json.name === 'Moscou') // Il faut ajouter + 1h de décallage à Moscou - { - timeZoneValue = (json.timezone / 60 / 60) + 1; - } - else - { - timeZoneValue = json.timezone / 60 / 60; - } - let timeZoneStr = timeZoneValue.toString(); - return dateTimeUTC(timeZoneStr); -} - -// Vérifie si une date est valide par rapport à la date d'aujourd'hui -function isValidDate(s) { - - // Date à vérifier - let toVerifyDate = s.split('/'); - let splitedToVerifyDate = toVerifyDate[2] + '-' + (parseInt(toVerifyDate[1]) + 1) + '-' + toVerifyDate[0]; - let msToVerifyDate = Date.parse(splitedToVerifyDate); - - // Date courante - let currentDate = dateTimeUTC(0); - currentDate = currentDate.substr(0,10); - let currentDateSplited = currentDate.split('/'); - let currentDateFormat = currentDateSplited[2] + '-' + currentDateSplited[1] + '-' + currentDateSplited[0]; - let msCurrentDate = Date.parse(currentDateFormat); - - if(msToVerifyDate <= msCurrentDate) { - return true; - } else if(msToVerifyDate > msCurrentDate) { - return false; - } else { - return messageError; - } } \ No newline at end of file diff --git a/scripts/main.js b/scripts/main.js index da4a0b8..74c7e2d 100644 --- a/scripts/main.js +++ b/scripts/main.js @@ -3,8 +3,11 @@ $(function () { // Fichiers qui contient les variables $.getScript("/scripts/variables.js", function() { - // Fichiers qui contient les fonctions - $.getScript("/scripts/fonctions.js", function() { + // Fichiers qui contient les fonctions annexes + $.getScript("/scripts/fonctions_annexes.js", function() { + + // Fichiers qui contient les fonctions principales + $.getScript("/scripts/fonctions_principales.js", function() { /* ÉXECUTION DES FONCTONS */ @@ -236,7 +239,9 @@ $(function () { todayHighlight: true }) - // Fin de l'import des fonctions + // Fin de l'import des fonctions principales + }); + // Fin de l'import des fonctions annexes }); // Fin de l'import des variables });