diff --git a/README.md b/README.md index eff496d..84e90cd 100644 --- a/README.md +++ b/README.md @@ -36,4 +36,5 @@ Le projet est disponible sur [function.divlo.fr](https://function.divlo.fr/). | **dateTimeUTC(utc)** | Donne la date et l'heure selon l'UTC (Universal Time Coordinated). | - utc : heure de décalage avec l'utc | | **showDateTime(enteredOffset)** | Affiche la date et l'heure (format : dd/mm/yyyy - 00:00:00). | - enteredOffset : date à formaté | | **realDateTime(id)** | Affiche l'heure en temps réel. | - id : l'id de votre span/div où vous voulez afficher l'heure en temps réel | -| **timeZone(json)** | Récupére le décalage en secondes à partir de l'heure UTC grâce à l'API openweathermap.org. | - json : le json de l'API | \ No newline at end of file +| **timeZone(json)** | Récupére le décalage en secondes à partir de l'heure UTC grâce à l'API openweathermap.org. | - json : le json de l'API | +| **isValidDate(s)** | Vérifie si une date est valide par rapport à la date d'aujourd'hui. | - s : la date à verifier (format : dd/mm/yyyy) | \ No newline at end of file diff --git a/scripts/fonctions.js b/scripts/fonctions.js index c1fa5d4..d47ff22 100644 --- a/scripts/fonctions.js +++ b/scripts/fonctions.js @@ -70,8 +70,10 @@ function calculateAge(birthDateEntered) { let ageDays = dateNow.diff(birthDate, 'days'); + let isValidDateFunction = isValidDate(birthDateDay + '/' + birthDateMonth + '/' + birthDateYear); + // Vérifie si la valeur entrée correspond à une date de naissance valide - if(birthDate._isValid === true) + if(isValidDateFunction === true) { // Si c'est ton anniversaire aujourd'hui if(birthDateDay === parseInt(day) && birthDateMonth === parseInt(month)) @@ -443,4 +445,28 @@ function timeZone(json) { } 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