Guide du Designer Crystal Reports pour Rational Application Developer

DateSerial (année, mois, jour)

Exemple d'utilisation
DateSerial peut être utilisée à la place de CDate ou DateValue pour créer une valeur de date à partir d'une année, d'un mois et d'un jour.
L'intérêt de DateSerial repose sur le fait que l'argument "mois" n'est pas nécessairement compris entre 1 et 12 et l'argument "jour" n'est pas nécessairement compris dans la plage correcte du nombre de jours dans le mois. De telles dates sont interprétées comme des dates relatives et DateSerial produit une valeur de date correcte. Cette fonction permet d'effectuer un grand nombre de calculs sur les dates, sans avoir à se préoccuper de cas spécifiques tels que la fin d'une année, les années bissextiles et le nombre de jours dans un mois. Voir les exemples ci-dessous.
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.



Business Objects, une société du groupe SAP
http://www.france.businessobjects.com/
Services de support technique
http://www.businessobjects.com/services/support/
Documentation des produits sur le Web
http://support.businessobjects.com/documentation/