Accueil de Gladir.com Notes légal de Gladir.com Flux RSS des nouvelles du site Gladir.com - Delphi/Kylix/Lazarus - Temps - Premier jour du mois depuis le début de l'année (FirstDayOfMonth) Section du logiciel DOS «MonsterBook» Inventaire de la bibliothèque de Gladir.com Entrée administrateur

Dans des langages de programmation Web comme ColdFusion, il existe de nombreuses fonctions de date inexistante dans d'autres langages. Une de celle-ci est la fonction du premier jour du mois depuis le début de l'année (FirstDayOfMonth). Permettant de connaitre ceci :

Année normal Année bissextile Position du mois Mois Jour/Mois
1 1 1 Janvier 31
32 32 2 Février 28/29
60 61 3 Mars 31
91 92 4 Avril 30
121 122 5 Mai 31
152 153 6 Juin 30
182 183 7 Juillet 31
213 214 8 Août 31
244 245 9 Septembre 30
274 275 10 Octobre 31
305 306 11 Novembre 30
335 336 12 Décembre 31

A l'aide du code source Delphi suivant, vous trouverez la réponse que vous souhaitez :

  1. Program Calendar;
  2.  
  3. {$APPTYPE CONSOLE}
  4.  
  5. Uses SysUtils;
  6.      
  7. Function DateToDayOfWeek(Y,M,D:Integer):Integer;
  8. Var
  9.  T0,T1,T2,Total:Integer;
  10. Begin
  11.  If(M > 12) Or (0 = M) Or (0 = D)Then Begin
  12.   DateToDayOfWeek:=0;Exit;
  13.  End;
  14.  If Y < 0 Then Inc(Y);
  15.  T0 := Trunc(0.6 + 1 / M);
  16.  T1 := M + 12 * T0;
  17.  T2 := Y - T0;
  18.  Total := Trunc(13 * (T1 + 1) / 5) + (5 * T2 div 4) - (T2 div 100) + (T2 div 400) + D - 1;
  19.  DateToDayOfWeek := Total - 7 * (Total div 7);
  20. End;
  21.      
  22. Procedure PutCalendar(Yr,Mh,Dy:Integer);
  23. Const
  24.  Days:Array[1..12] of Integer=(31,28,31,30,31,30,31,31,30,31,30,31);
  25. Var
  26.  I,D:Integer;
  27. Begin
  28.  If IsLeapYear(Yr)Then Days[2] := 29;
  29.  D := DateToDayOfWeek(Yr, Mh, 1);
  30.  WriteLn('Diman Lundi Mardi Mercr Jeudi Vendr Samed');
  31.  Write(' ':6 * D);
  32.  For I := 1 To Days[Mh]do Begin
  33.   If I < 10 Then Write(' ');
  34.   Write(I,' ':4);
  35.   If(0 = (D + I) Mod 7)Then WriteLn;
  36.  End;
  37.  WriteLn;
  38.  WriteLn;
  39. End;
  40.      
  41. Function MonthName(Mh:Integer):String;Begin
  42.  Case Mh of
  43.   1:MonthName:='Janvier';
  44.   2:MonthName:='Février';
  45.   3:MonthName:='Mars';
  46.   4:MonthName:='Avril';
  47.   5:MonthName:='Mai';
  48.   6:MonthName:='Juin';
  49.   7:MonthName:='Juillet';
  50.   8:MonthName:='Août';
  51.   9:MonthName:='Septembre';
  52.   10:MonthName:='Octobre';
  53.   11:MonthName:='Novembre';
  54.   12:MonthName:='Décembre';
  55.   Else MonthName:='';
  56.  End;
  57. End;
  58.      
  59. Var
  60.  I:Integer;
  61.      
  62. BEGIN
  63.  For I := 1 To 12 do Begin
  64.   WriteLn(MonthName(I),' 2008');
  65.   WriteLn;
  66.   PutCalendar(2008, I, 3);
  67.  End;
  68. END.

on obtiendra le résultat suivant :

Année 2000, mois 1, jour du premier du mois: 1
Année 2000, mois 2, jour du premier du mois: 32
Année 2000, mois 3, jour du premier du mois: 61
Année 2000, mois 4, jour du premier du mois: 92
Année 2000, mois 5, jour du premier du mois: 122
Année 2000, mois 6, jour du premier du mois: 153
Année 2000, mois 7, jour du premier du mois: 183
Année 2000, mois 8, jour du premier du mois: 214
Année 2000, mois 9, jour du premier du mois: 245
Année 2000, mois 10, jour du premier du mois: 275
Année 2000, mois 11, jour du premier du mois: 306
Année 2000, mois 12, jour du premier du mois: 336
Année 2001, mois 1, jour du premier du mois: 1
Année 2001, mois 2, jour du premier du mois: 32
Année 2001, mois 3, jour du premier du mois: 60
Année 2001, mois 4, jour du premier du mois: 91
Année 2001, mois 5, jour du premier du mois: 121
Année 2001, mois 6, jour du premier du mois: 152
Année 2001, mois 7, jour du premier du mois: 182
Année 2001, mois 8, jour du premier du mois: 213
Année 2001, mois 9, jour du premier du mois: 244
Année 2001, mois 10, jour du premier du mois: 274
Année 2001, mois 11, jour du premier du mois: 305
Année 2001, mois 12, jour du premier du mois: 335


Voir également

ColdFusion - Référence de procédures et fonctions - FIRSTDAYOFMONTH

Dernière mise à jour: Jeudi, le 16 juin 2011