SCR/AL1 - TOME III. Les librairies utilitaires
3. Le groupe s_date
Le groupe s_date contient une liste de fonctions permettant de gérer les dates et les heures. En particulier, les formatages libres sont intéressants pour préparer des impressions. Les fonctions de vérifications permettent de s'assurer qu'une date ou une heure dans un format quelconque sont correctes.
Une autre classe de fonctions permet d'effectuer divers calculs sur les dates : additions, soustractions, calendrier julien, etc.
Le prototype de ces fonctions se trouve dans le fichiers <s_date.h>.
Deux variables globales permettent de définir les formats standard : en voici les valeurs par défaut:
SCR_DATE_FMT = "dd/mm/yyyy"
SCR_TIME_FMT = "hh:mm:ss"
Format des dates et des heures
Pour uniformiser les définitions de formats de dates et d'heures, les conventions suivantes sont utilisées dans SCR/AL1 :
- dates : une date est représentée par un long dont la valeur est la suivante : YYYYMMDD où YYYY est l'année, MM le mois et DD le jour dans le mois. Cette convention offre l'avantage d'ordonner les dates. Elle est retenue pour le stockage de dates dans les bases de données.
- heures : une heure est représentée par un long dont la valeur est la suivante : HHMMSS où HH est l'heure (00-23), MM les minutes (00-59) et SS les secondes (00-59). Cette convention offre l'avantage d'ordonner les heures. Elle est retenue pour le stockage de heures dans les bases de données.
Exemple
Le 31 janvier 1990 est repésenté par la valeur 19900131L.
15h30 est repésenté par la valeur 153000L.
Fonctions de gestion des dates
- SCR_current_date : date courante
- SCR_long_to_date : formatage standard d'une date
- SCR_long_to_fdate : formatage libre d'une date
- SCR_date_to_long : déformatage d'une date standard
- SCR_fdate_to_long : déformatage d'une date en format libre
- SCR_check_date : vérification de la validité d'une date standard
- SCR_check_fmt_date : vérification d'une date en format libre
Fonctions de gestion des heures
- SCR_current_time : heure courante
- SCR_long_to_time : formatage standard d'une heure
- SCR_long_to_ftime : formatage libre d'une heure
- SCR_time_to_long : déformatage d'une heure standard
- SCR_ftime_to_long : déformatage d'une heure en format libre
- SCR_check_time : vérification de la validité d'une heure standard
- SCR_check_fmt_time : vérification d'une heure en format libre
Fonctions de calcul de dates
- DT_year : extraction de l'année d'une date
- DT_month : extraction du mois d'une date
- DT_day : extraction du jour d'une date
- DT_date_num : nombre de jours depuis le 1/1/1900
- DT_num_date : date = un nombre de jours depuis le 1/1/1900
- DT_bix : détermine si une année est bissextile
- DT_day_w : jour de la semaine
- DT_add_months : ajout de mois à une date
- DT_add_days : ajout de jours à une date
- DT_diff_months : nombre de mois entre deux dates
- DT_diff_dates : nombre de jours entre deux dates
- DT_diff_30 : nombre de jours entre deux dates (cal. 30j/mois)
- DT_bus : modification de date en fonction du jour semaine
- DT_leave : détermine si un jour est travaillé ou non
- DT_date_julian : transformation en calendrier julien d'une date
- DT_julian_date : transformation en date normale en calendrier julien
- DT_month_days : nombre de jours dans le mois d'une date
- DT_secs_1180 ; nombre de secondes entre le 1/1/1980 et une date et heure
- DT_secs_1100 : nombre de secondes entre le 1/1/2000 et une date et heure
- DT_current_sec : nombre de secondes écoulées depuis le 1/1/1980
- DT_current_sec_2000 : nombre de secondes écoulées depuis le 1/1/2000
- DT_week_number : numéro de la semaine d'une date donnée
Fonction d'édition d'un calendrier
- DT_calendar : édition d'un calendrier dans une application SCR/AL1
3.1 _SCR_current_date (file s_date.c:43)
3.2 SCR_long_to_date (file s_date.c:101)
3.3 SCR_long_to_fdate (file s_date.c:158)
3.4 SCR_date_to_long (file s_dtchkd.c:31)
3.5 SCR_fdate_to_long (file s_dtchkd.c:71)
3.6 SCR_check_date (file s_dtchkd.c:236)
3.7 SCR_check_fmt_date (file s_dtchkd.c:268)
3.8 _SCR_current_time (file s_date.c:74)
3.9 SCR_long_to_time (file s_date.c:127)
3.10 SCR_long_to_ftime (file s_date.c:222)
3.11 SCR_time_to_long (file s_dtchkt.c:30)
3.12 SCR_ftime_to_long (file s_dtchkt.c:54)
3.13 SCR_check_time (file s_dtchkt.c:103)
3.14 SCR_check_fmt_time (file s_dtchkt.c:122)
3.15 DT_year (file s_dt.c:17)
3.16 DT_month (file s_dt.c:30)
3.17 DT_day (file s_dt.c:43)
3.18 DT_date_num (file s_dt.c:61)
3.19 DT_num_date (file s_dt.c:83)
3.20 DT_bix (file s_dt.c:114)
3.21 DT_day_w (file s_dt.c:164)
3.22 DT_add_months (file s_dt.c:190)
3.23 DT_add_days (file s_dt.c:219)
3.24 DT_diff_months (file s_dt.c:315)
3.25 DT_diff_dates (file s_dt.c:332)
3.26 DT_diff_30 (file s_dt.c:370)
3.27 DT_bus (file s_dt.c:254)
3.28 DT_leave (file s_dt.c:293)
3.29 DT_date_julian (file s_dt.c:395)
3.30 DT_julian_date (file s_dt.c:417)
3.31 DT_month_days (file s_dt.c:476)
3.32 DT_secs_1180 (file s_dt.c:496)
3.33 DT_secs_1100 (file s_dt.c:530)
3.34 DT_current_sec (file s_dt.c:518)
3.35 DT_current_sec_2000 (file s_dt.c:549)
3.36 DT_week_number (file s_dt.c:572)
3.37 DT_calendar (file s_dtcal.c:34)