|
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 :
| 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 :
- Program Calendar;
-
- {$APPTYPE CONSOLE}
-
- Uses SysUtils;
-
- Function DateToDayOfWeek(Y,M,D:Integer):Integer;
- Var
- T0,T1,T2,Total:Integer;
- Begin
- If(M > 12) Or (0 = M) Or (0 = D)Then Begin
- DateToDayOfWeek:=0;Exit;
- End;
- If Y < 0 Then Inc(Y);
- T0 := Trunc(0.6 + 1 / M);
- T1 := M + 12 * T0;
- T2 := Y - T0;
- Total := Trunc(13 * (T1 + 1) / 5) + (5 * T2 div 4) - (T2 div 100) + (T2 div 400) + D - 1;
- DateToDayOfWeek := Total - 7 * (Total div 7);
- End;
-
- Procedure PutCalendar(Yr,Mh,Dy:Integer);
- Const
- Days:Array[1..12] of Integer=(31,28,31,30,31,30,31,31,30,31,30,31);
- Var
- I,D:Integer;
- Begin
- If IsLeapYear(Yr)Then Days[2] := 29;
- D := DateToDayOfWeek(Yr, Mh, 1);
- WriteLn('Diman Lundi Mardi Mercr Jeudi Vendr Samed');
- Write(' ':6 * D);
- For I := 1 To Days[Mh]do Begin
- If I < 10 Then Write(' ');
- Write(I,' ':4);
- If(0 = (D + I) Mod 7)Then WriteLn;
- End;
- WriteLn;
- WriteLn;
- End;
-
- Function MonthName(Mh:Integer):String;Begin
- Case Mh of
- 1:MonthName:='Janvier';
- 2:MonthName:='Février';
- 3:MonthName:='Mars';
- 4:MonthName:='Avril';
- 5:MonthName:='Mai';
- 6:MonthName:='Juin';
- 7:MonthName:='Juillet';
- 8:MonthName:='Août';
- 9:MonthName:='Septembre';
- 10:MonthName:='Octobre';
- 11:MonthName:='Novembre';
- 12:MonthName:='Décembre';
- Else MonthName:='';
- End;
- End;
-
- Var
- I:Integer;
-
- BEGIN
- For I := 1 To 12 do Begin
- WriteLn(MonthName(I),' 2008');
- WriteLn;
- PutCalendar(2008, I, 3);
- End;
- 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
|