Accueil > > > SCRIPT POUR CONVERTIR UNE DATE GREGORIENNE EN DATE ISO 8601 (N° DE SEMAINE)
SCRIPT POUR CONVERTIR UNE DATE GREGORIENNE EN DATE ISO 8601 (N° DE SEMAINE)
Information sur la source
Description
Ce petit Script sert a trouver la date en format ISO 8601, c'est a dire Le numéro de semaine, le numero du jour de la semaine (du lundi au dimanche) et l'année (et oui car la premiere semaine d'une année peut commencer l'année d'avant comme la derniere semaine peut se terminer l'année d'aprés) Bref j'ai récuperé l'Algo d'un certain 'Rick McCarty' (rendons a césar...) mais j'ai rectifier une chose ou deux mineures qui fesaient bugger mon script. Je le met donc en ligne car j'en avais besoin pour une appli et j'ai galéré comme un âne pour trouver l'algo. Donc si cela peut servir à quelqu'un...
Source
<cfscript>
//-------------------------------------------------------------------------------------------------------------->
//------- Algorithme pour Convertir une Date Gregorienne en Date de semaine ISO 8601 ----------------------->
//-------------------------------------------------------------------------------------------------------------->
//-- 1. Convert input to Y M D
Y = Annee; //(full specification; input 98 = year 0098)
M = Mois; //(1 through 12)
D = Jour; //(1 through 31)
//-- 2. Find if Y is LeapYear IsLeapYear(année)
if(IsLeapYear(Y))
{
LeapYear = true;
}
else
{
LeapYear = false;
}
//-- 3. Find if Y-1 is LeapYear
if(IsLeapYear(Y-1))
{
LeapYear_1 = true;
}
else
{
LeapYear_1 = false;
}
//-- 4. Find the DayOfYearNumber for Y M D
Mnth = ArrayNew(1);
Mnth[1] = 0;
Mnth[2] = 31;
Mnth[3] = 59;
Mnth[4] = 90;
Mnth[5] = 120;
Mnth[6] = 151;
Mnth[7] = 181;
Mnth[8] = 212;
Mnth[9] = 243;
Mnth[10] = 273;
Mnth[11] = 304;
Mnth[12] = 334;
DayOfYearNumber = D + Mnth[M];
if (LeapYear EQ true AND M GT 2)
{
DayOfYearNumber = DayOfYearNumber + 1;
}
//-- 5. Find the Jan1Weekday for Y (Monday=1, Sunday=7)
YY = ( Y - 1 ) MOD 100;
C = ( Y - 1 ) - YY;
G = YY + YY / 4;
Jan1Weekday = 1 + ((((( C / 100 ) MOD 4 ) * 5 ) + G ) MOD 7 );
//-- 6. Find the Weekday for Y M D
H = DayOfYearNumber + (Jan1Weekday - 1);
Weekday = 1 + (( H - 1 ) MOD 7 );
//-- 7. Find if Y M D falls in YearNumber Y-1, WeekNumber 52 or 53
if ( DayOfYearNumber LE ( 8 - Fix(Jan1Weekday) ) AND Jan1Weekday GE 5 )
{
YearNumber = Y - 1;
if (Fix(Jan1Weekday) EQ 5 OR (Fix(Jan1Weekday) EQ 6 AND LeapYear_1 EQ true))
{
WeekNumber = 53;
}
else
{
WeekNumber = 52;
}
}
else
{
YearNumber = Y;
}
//-- 8. Find if Y M D falls in YearNumber Y+1, WeekNumber 1
if (YearNumber EQ Y)
{
if ( LeapYear EQ true )
{
I = 366;
}
else
{
I = 365;
}
if ( (I - DayOfYearNumber) LT (4 - Weekday) )
{
YearNumber = Y + 1;
WeekNumber = 1;
}
}
//-- 9. Find if Y M D falls in YearNumber Y, WeekNumber 1 through 53
if (YearNumber EQ Y)
{
J = DayOfYearNumber + (7 - Weekday) + (Jan1Weekday -1);
WeekNumber = J / 7;
if (Jan1Weekday GT 4)
{
WeekNumber = WeekNumber - 1;
}
}
Weekday = Fix(Weekday);
</cfscript>
Conclusion
Pas de bugs connus ;)
Historique
- 15 juin 2005 16:57:34 :
- rajout de "n° de semaine" dans le titre pour une meilleur recherche sur le net...
Sources de la même categorie
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
convertir une date [ par melany ]
Bonjour,J'aimerais savoir comment convertir une date de 08-Aug-02 à 08-08-02 ?Existe-il une fonction ou dois-je faire des tests sur la date (ex : si A
PB de Date sous access97 [ par helpme ]
Bonjour,J'ai cree un petit prog sous access 97 et sous windows 2000. Dans ce prog il y a une table ou il y a un champs date et une valeur par défaut D
format de date ... [ par beckham0187 ]
Mon format de date vb est "dd/mm/yy", pour lire et ecrire dans la base ,pas de probleme...ecriture: 01/01/02 --> 12420 (exemple de format interne)l
Calcul d'un age a partir d'un champ date [ par jfg ]
Bonjour,je voudrais pouvoir calculer un age à partir d'un champ date. Par exemple un champ contenant "10/07/78" me retournerait dans ma page "24".
Format date [ par jfg ]
Bonjour,<cfcontent type="text/html; charset=iso-8859-1"><cfset oldlocale = SetLocale ("French (Standard)")><cfset "form.editnaissance"
Somme de date [ par jfg ]
Bonjour,que dois je faire pour pouvoir additionner des dates venant de ma base de donnée (datetime) ?
savoir la date de modif d'une base de données [ par math85 ]
est il possible de trouver le derniere date de modif d'une base access sous coldfusion?mercim@th85
Problème de date [ par smathios ]
Bonjour, j'ai écrit le code suivant : <cfset d1 = #LSDateFormat(Now(), "dd/mm/yyyy")#><cfset d2 = #LSDateFormat(DateAdd("d",21,d1), "dd/mm/yy
Fichier (datelastaccessed) [ par uchrony ]
Bonjour à tous,je voudrais savoir si quelqu'un sait me dire comment je peux accèder à la propriété "date du dernier accès" d'un fichier au travers d'u
Insertion de date dans BD Access [ par miketrix ]
Salut,Je cherche la syntaxe exacte pour insérer une date dans une Base de données à partir d'un simple formulaire ( champ input text contenant la date
|
Derniers Blogs
[MIX10] KEYNOTE DEUXIèME JOURNéE - INTERNET EXPLORER 9, HTML5, VISUAL STUDIO 2010, ODATA[MIX10] KEYNOTE DEUXIèME JOURNéE - INTERNET EXPLORER 9, HTML5, VISUAL STUDIO 2010, ODATA par cyril
Le deuxième keynote du mix fut très riche en contenu. Internet Explorer 9 Juste un après le lancement de Internet Explorer 8, Microsoft a dévoilé les nouveautés de Internet Explorer 9. Désormais, IE supportera HTML5, SVG et CSS3. L'élément ...
Cliquez pour lire la suite de l'article par cyril CERTIFICATIONS BETA .NET 4CERTIFICATIONS BETA .NET 4 par KooKiz
Les inscriptions pour les certifications beta .NET 4 ont commencé. L'inscription est offerte pour les examens suivants : - 71-511, TS: Windows Applications Development with Microsoft .NET Framework 4 - 71-515, TS: Web Applications Development with...
Cliquez pour lire la suite de l'article par KooKiz [MIX 2010] - MICROSOFT TRANSLATOR TECHNOLOGY PREVIEW V2[MIX 2010] - MICROSOFT TRANSLATOR TECHNOLOGY PREVIEW V2 par redo
J'imagine que la plupart d'entre vous connaissent bien et utilisent le service de traduction de Google, mais connaissez-vous celui de Microsoft . Microsoft Translator ? Effectivement, Microsoft nous annoncé le lancement version 2 de la Technologie Preview...
Cliquez pour lire la suite de l'article par redo LANCEMENT EN PREVIEW DE CYCLONE LORS DES TECHDAYS 2010!LANCEMENT EN PREVIEW DE CYCLONE LORS DES TECHDAYS 2010! par MPOWARE
Toutes les vidéos de ce lancement sont en ligne!
Partie I - Intro
http://www.youtube.com/watch?v=LkQzTQ8T6CA
Partie II - Démo 1
http://www.youtube.com/watch?v=drAhYQ7lqvo
Partie III - Démo 2
http://www.youtube.com/watch?v=c8KM_1Gqybc...
Cliquez pour lire la suite de l'article par MPOWARE
Forum
RE : SITE WEBRE : SITE WEB par syndrael
Cliquez pour lire la suite par syndrael SITE WEBSITE WEB par cherifzaynab
Cliquez pour lire la suite par cherifzaynab RE : CFM ET XMLRE : CFM ET XML par vachdzil
Cliquez pour lire la suite par vachdzil RE : CFM ET XMLRE : CFM ET XML par vachdzil
Cliquez pour lire la suite par vachdzil RE : CFM ET XMLRE : CFM ET XML par vachdzil
Cliquez pour lire la suite par vachdzil
Logiciels
Academy System (10.9.4.0)ACADEMY SYSTEM (10.9.4.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Xilisoft Convertisseur Vidéo Ultimate (5.1.39.0305)XILISOFT CONVERTISSEUR VIDéO ULTIMATE (5.1.39.0305)Xilisoft Convertisseur Vidéo Ultimate est un outil puissant de conversion vidéo, facile à utilise... Cliquez pour télécharger Xilisoft Convertisseur Vidéo Ultimate Xilisoft DVD Ripper Ultimate (5.0.64.0304)XILISOFT DVD RIPPER ULTIMATE (5.0.64.0304)Xilisoft DVD Ripper Ultimate est un logiciel excellent pour copier et convertir DVD vers presque ... Cliquez pour télécharger Xilisoft DVD Ripper Ultimate Rigs of Rods (63.3)RIGS OF RODS (63.3)c'est un jeu de multi-simulation camions,autobus voitures, avions, bateaux, hélicoptère avec défo... Cliquez pour télécharger Rigs of Rods
|