Textendeddatetime, composant non-visuel de date et heure multi-fonction

Soyez le premier à donner votre avis sur cette source.

Vue 6 450 fois - Téléchargée 897 fois


Description

Je vous propose un composant non-visuel (TExtendedDateTime) qui n'est rien d'autre qu'un "calque" de l'unitée DateUtils et des nombreuses fonctions de gestion des types TDateTime, TDate et TTime.

Ce composant et un bon gestionnaire de date et heure, on pourrat facilement definir la date, l'heure, le jours, le mois, l'année, l'heure, les minutes, les secondes et meme les milli-secondes...

Il permet egalement de recupere la date ou l'heure dans un format chaine, en utilisant les vairiable globale de temps ou en deffinissant votre propre format de chaine.

Utilisation de TExtendedDateTime :

Assignez une valeur aux propiétés DateTime, Date, Time, Day, Month, Year, Hour, Minute, Second, MilliSecs pour definir la date ou l'heure a utiliser, lisez ces propriétés pour obtenir les informations qu'elles donnent.

Definissez les propriétés FmtStrDateTime, FmtStrDate et FmtStrTime pour modifier les valeurs de retour des propriétés DateTimeStr, DateStr et TimeStr et egalement les valeurs de retour des fonctions GetDateTimeStr, GetDateStr et GetTimeStr.
Pour ce faire, passez la propriété UseGlobalFormat a true (utilisation des variables globale systeme) ou a false (utilisation de votre propre format)
    • les propriétés suivante sont en lecture seule :


Les propriétés DayStr et MonthStr renvoies le jours et le mois au format long (lundi, mardi, janvier, fevrier etc...)

La propriété DayOfWeek renvois le jours de la semaine (1..7) en considerant Lundi comme le premier jours de la semaine.

La propriété DayOfYear renvois le jours de l'année (x/366 ou x/365)

La propriété DaysInThisYear renvois le nombre de jours dans l'année definie dans la date (365 ou 366).

La propriété WeekOfYear renvois le nombres de semaines dans l'année definie dans la date.

La propriété LeapYear renvois true si l'année est bisextile sinon elle renvous false.

La propriété Meridian renvois tmPM ou tmAM selon le meridien de l'heure definie. (post meridian, after meridian)

La propriété MeridianStr renvois 'Pm' ou 'Am' selon la valeur de la propriété Meridian.

Vous pouvez au choix utiliser les propriétés ou les fonctions interne correspondante, par exemple :

ExtendedDateTime.Day;
Correspond a :
ExtendedDateTime.GetDay;

Le fichier ExtDateTime.res contient l'icone du composant, ne l'effacez pas et copiez le dans le meme repertoire d'installation que l'unité ExtDateTime.pas.

Conclusion :


Pour le moment TExtendedDateTime ne verifie pas de maniere implicite les données qu'on lui passe.
Si vous definissez par exemple une valeur de jours hors du champs 1..31 (ou 1..28, 1..29 pour fevrier) vous aurez alors un message d'erreur (date invalide).

Les valeurs de temps sont :

Année : 1..9999
Mois : 1..12
Jours : 1..31
Heure : 0..23
Minute : 0..59
Seconde: 0..59
Millsec: 0..999

Merci de prevenir tout bugs rencontrés.

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

jackalunion
Messages postés
129
Date d'inscription
mercredi 8 janvier 2003
Statut
Membre
Dernière intervention
14 juillet 2008
-
efficace
f0xi
Messages postés
4200
Date d'inscription
samedi 16 octobre 2004
Statut
Modérateur
Dernière intervention
2 janvier 2019
26 -
mmm petite erreur de definition...

mais je rapel que la prop DayOfYear est en lecture seule!

pour changer le jours de la date en cours il suffit de changer la propriétée "Day" et celle-ci n'accepte qu'un nombre correspondant au jour du mois (1..31,1..30,1..29,1..28)
1..31 : janviers, mars, mai, juillet, Aout, Octobre, Decembre
1..30 : avril, juin, septembre, novembre
1..29 : fevrier (année bisextile)
1..28 : fevrier (année non-bisextile)
jlen100
Messages postés
1649
Date d'inscription
samedi 10 juillet 2004
Statut
Membre
Dernière intervention
25 juillet 2014
7 -
salut foxi,
je n'est tester simplement dans la description tu écris:
"La propriété DayOfYear renvois le jours de l'année (1 a 365)" et
"Si vous definissez par exemple une valeur de jours hors du champs 1..31 (ou 1..28, 1..29 pour fevrier) vous aurez alors un message d'erreur (date invalide)."
Et les années bisextiles alors!!
@+
jlen

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.