This repository has been archived on 2024-10-29. You can view files and clone it, but cannot push or open issues or pull requests.
FunctionProject/scripts/fonctions_annexes.js

211 lines
6.6 KiB
JavaScript
Raw Normal View History

/* 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;
}
}
// Créer un cookie de session
function createSessionCookie(name, value) {
document.cookie = escape(name) + "=" + escape(value) + " ; path=/";
}