Exemples
DateSerial (1999, 6, 15)
DateSerial (2000, 1 - 7, 15)
DateSerial (1999, 1, 166)
Ces trois exemples renvoient la date "15 juin 1999". Le deuxième indique que 7 mois séparent le 1er janvier 2000 du 15 juin 1999. Le troisième indique que le 166ème jour de 1999 est le 15 juin 1999.
DateSerial (1996 + 12, 2 + 13, 29 + 14)
Renvoie le 12 avril 2009. Cela signifie que la date correspondant à 12 années, 13 mois et 14 jours à partir du 29 février 1996 est le 12 avril 2009.
Supposons que vous vouliez calculer le dernier jour du mois pour le champ DateTime {Commandes.Date de commande}. Remarquez que dans le calcul, DateSerial(Year(d), Month(d) + 1, 1) est le premier jour du mois suivant {Commandes. Date de commande} et donc en soustrayant un jour on obtient le résultat voulu :
Local DateTimeVar d := {Orders.Order Date};
DateSerial(Year(d), Month(d) + 1, 1 - 1)Il est souvent utile de combiner DateSerial avec d'autres fonctions de date. Par exemple, pour calculer la date du dernier vendredi du mois pour le champ {Commandes.Date de commande}, vous pouvez procéder comme suit.
Le calcul consiste à trouver le dernier jour du mois, puis à soustraire un nombre de jours de façon à obtenir un vendredi. Certains mois comportant 5 vendredis (par exemple : octobre 1999) et d'autres 4 vendredis (par exemple : novembre 1999), il est préférable d'utiliser cette approche que de commencer à partir du premier jour du mois.
Local DateTimeVar d1 := {Orders.Order Date};
Local DateVar d2;
d2 := DateSerial(Year(d1), Month(d1) + 1, 1 - 1);
d2 - (DayOfWeek(d2, crFriday) - 1)Renvoie la valeur "27 mars 1998" si {Commandes.Date de commande} = 18 mars 1998.
Voici un exemple renvoyant la date du deuxième mardi du mois 3 mois avant {Commandes.Date de commande} :
Local DateTimeVar d1 := {Orders.Order Date};
Local DateVar d2 := DateSerial(Year(d1), Month(d1) - 3, 1);
d2 + (2 * 7 - (DayOfWeek(d2, crTuesday) - 1))Renvoie la valeur "9 décembre 1997" si {Commandes.Date de commande} = 18 mars 1998.