De manière générale, plusieurs structures de données sont utilisées pour décrire le temps dans Delphi, et le fonctionnement du temps est essentiellement le fonctionnement de ces structures.
Type TDateHeure :
Le type de données le plus couramment utilisé pour représenter la date et l'heure dans Delphi est le type TDateTime. Tout comme un entier ordinaire, vous pouvez définir une variable de date pour que la date fonctionne dans le programme. Le type TdateTime est essentiellement un nombre de type Double. Le type TdateTime est défini dans Delphi comme ceci : type TDateTime = type Double L'algorithme spécifique consiste à utiliser la partie entière du nombre Double pour représenter la date, avec le 30 décembre 1989 comme date. le point de base. Ajoutez et soustrayez en jours, par exemple, le chiffre 1 représente le 1er janvier 1900 et le chiffre -1 représente le 29 décembre 1989. La partie décimale est utilisée pour exprimer l'heure, et sa valeur est le rapport du temps à exprimer par rapport à la durée totale de la journée. Par exemple, 6 heures du matin équivaut à 6/24=0,25, et 6 : 15 heures du matin correspond à (6*60+15)/ (24*60)=0,26041666666666666666666666667 Ci-dessous, plusieurs exemples sont donnés pour illustrer l'interaction entre le type TDateTime et le type Double.
0 30/12/1899 00:00:00
2.75 1/1/1900 18:00:00
-1,25 29/12/1899 6:00:00
35065 1/1/1996 00:00:00
Je pense que tout le monde peut comprendre la méthode de conversion entre TdateTime et Double. Par conséquent, le fonctionnement de TDateTime est fondamentalement le même que celui de Double.
Type TTimeStamp :
Il s'agit d'un type de structure utilisé pour décrire la date et l'heure. Il est défini en Delphi comme ceci :
tapez TTimeStamp = record Time: Integer; {Le nombre de millisecondes entre minuit et l'heure spécifiée} Date: Integer; {Le nombre de jours entre aujourd'hui et la date spécifiée} end;
Comparé à TDateTime, il peut exprimer le temps de haute précision de manière plus intuitive et est généralement utilisé pour les opérations au niveau de la milliseconde et pour exprimer des temps plus longs.
Type PsystemTime :
Une structure de pointeur utilisée pour les opérations temporelles dans WinApi. Sa définition est :
tapez PSystemTime = ^TSystemTime = enregistrement wYear : Word ; wDayOfWeek : Word ; wHeure : Word ; wSecond : Word ;
Cette structure est principalement utilisée lors de l'appel d'opérations WinApi.
Après avoir compris l'essence des différents types de temps, je pense que tout le monde a un ensemble d'idées pour manipuler ces types de temps. Cependant, Delphi fournit également un ensemble complet de fonctions de processus pour manipuler le temps. Ces processus et fonctions sont définis dans SysUnit. unité, je vais maintenant vous présenter les fonctions pertinentes dans Delphi :
Fonctions de manipulation du temps
Fonction date :
Définition : Date : TDateTime ;
Fonction : Renvoie la date actuelle
exemple:
DateActuelle := Date ;
Fonction JourDeLaSemaine :
Définition : fonction DayOfWeek(Date : TDateTime) : Integer ;
Fonction : obtenez la valeur du jour de la semaine de la date spécifiée et renvoyez 1 à 7, représentant du dimanche au samedi.
Fonction IncMouth :
Définition : fonction IncMonth(const Date : TDateTime ; NumberOfMonths : Integer) : TDateTime ;
Fonction : Rechercher la date de la date donnée Données après NumberOfMonths mois.
exemple:
Date1 := IncMois(date,10);
Si nous sommes aujourd'hui le 3-5-2002, alors Date1 est le 3-3-2003
Fonction IsLeapYear :
Définition : fonction IsLeapYear(Year : Word) : Boolean ;
Fonction : Déterminer si l'année spécifiée est une année bissextile ;
exemple:
if isLeapYear(2000) then ShowMessage('Cette année est une année bissextile');
Fonctionne maintenant :
Définition : fonction Maintenant : TDateTime ;
Fonction : utilisé pour obtenir la date et l'heure actuelles
exemple:
CurrentDateTime := Maintenant ;
Procédure RemplacerDate
Définition : procédure ReplaceDate(var DateTime : TDateTime ; const NewDate : TDateTime) ;
Fonction : utilisez la partie date du paramètre Newdate pour remplacer la partie date du paramètre DateTime, mais ne modifiez pas la partie heure.
Procédure RemplacerDate
Définition : procédure ReplaceTime(var DateTime : TDateTime ; const NewTime : TDateTime) ;
Fonction : Utilisez la partie heure du paramètre Newdate pour remplacer la partie heure du paramètre DateTime, mais ne modifiez pas la partie date.
Si les deux processus ci-dessus sont utilisés ensemble, cela équivaut à une affectation.
Fonction temps :
Définition : fonction Heure : TDateTime ;
Fonction : renvoie l'heure actuelle
exemple:
HeureActuelle := Heure ;
Fonctions de conversion entre différents types de temps
Fonction DateTimeToFileDate :
Définition : DateTimeToFileDate(DateTime : TDateTime) : Entier ;
Fonction : Convertissez une heure de type TDateTime en heure dans l'environnement Dos. La méthode d'accès à l'heure dans l'environnement Dos est différente du type TdateTime dans VCL. Lors de l'exécution d'opérations sur les fichiers, afin de maintenir la cohérence de l'heure, vous devez utiliser la fonction DateTimeToFileDate. . Après la conversion, la valeur entière renvoyée est la valeur utilisée pour décrire le temps sous Dos.
Procédure DateTimeToSystemTime :
Définition : procédure DateTimeToSystemTime(DateTime : TDateTime ; var SystemTime : TSystemTime) ;
Fonction : convertit une heure de type TDateTime en type TSystemTime utilisé par la fonction Win API, qui est utilisée lors de l'utilisation de la fonction WinApi pour manipuler l'heure.
Fonction SystemTimeToDateTime :
Définition : fonction SystemTimeToDateTime(const SystemTime : TSystemTime) : TDateTime ;
Fonction : Convertit un numéro de type TSysTemTime obtenu dans la fonction WinApi en un type TDateTime.
Fonction DateTimeToTimeStamp :
Fonction TimeStampToDateTime :
Définition : DateTimeToTimeStamp(DateTime : TDateTime) : TTimeStamp ;
fonction TimeStampToDateTime(const TimeStamp : TTimeStamp) : TDateTime ;
Fonction : utilisé pour convertir entre le type TDataTime et TTimeStamp. TDataTime utilise un double pour décrire une heure, tandis que TTimeStamp utilise respectivement deux entiers pour décrire l'heure. La différence entre les deux types peut être trouvée dans la section de description du type de données au début de l'article.
Fonction EncodeDate :
Définition : fonction EncodeDate(Année, Mois, Jour : Mot) : TDateTime ;
Fonction : entrez les valeurs de l'année, du mois et du jour et renvoyez la date sous forme de type TDateTime. La plage d'années est de 1 à 9999, la plage de mois est de 1 à 12 et la plage de dates est basée sur le mois en cours. Dans cette situation, si la valeur saisie est hors plage, une EConvertError sera générée.
Processus de décodage :
Définition : procédure DecodeDate(Date : TDateTime ; var Année, Mois, Jour : Word) ;
Fonction : saisissez une date de type TDateTime et convertissez-la en valeur d'année, de mois et de jour. Si la valeur d'entrée est 0 ou inférieure à 0, alors l'année, le mois et le jour sont tous 0,
Fonction EncodeTime :
Définition : EncodeTime (Hour, Min, Sec, MSec : Word) : TDateTime ;
Fonction : saisissez la valeur de l'heure (Hour), de la minute (min), de la seconde (Sec), de la microseconde (MSec) et renvoyez une heure de type TDateTime, qui est une décimale comprise entre 0 et 1. La plage de valeurs de l'heure est de 0 à 23, la plage de valeurs de Min est de 0 à 59, la plage de valeurs de Sec est de 0 à 59 et la plage de valeurs de MSec est de 0 à 999. Si la valeur d'entrée dépasse la plage, un. EConvertError est généré une erreur.
Processus DecodeTime :
Définition : procédure DecodeTime(Time : TDateTime ; var Hour, Min, Sec, MSec : Word) ;
Fonction : saisissez une heure et convertissez-la en heures, minutes, secondes et microsecondes (MSec).
Fonction de conversion de type TDateTime et de type chaîne :
Fonction DateTimeToStr :
Fonction DateVersStr
Fonction TimeToStr
Définition : fonction DateTimeToStr(DateTime : TDateTime) : string ;
fonction TimeToStr(Time : TDateTime) : chaîne ;
fonction TimeToStr(Time : TDateTime) : chaîne ;
Fonction : convertit un numéro de type TDateTime en chaîne, DateTimeToStr convertit la date et l'heure, DateToStr convertit uniquement la date et TimeToStr convertit uniquement l'heure. L'effet de sortie converti est YYYY-MD H:M:S
Fonction StrToDateTime
Fonction StrVersDate
Fonction StrToTime
Définition : fonction StrToDateTime(const S : string) : TDateTime ;
fonction StrToDate(const S : string) : TDateTime ;
fonction StrToTime (const S : string) : TDateTime ;
Fonction : Convertit une chaîne au format date et heure en TDateTime, où S doit être une chaîne valide, telle que
Format AA-MM-JJ HH:MM:SS, sinon l'événement EConvertError sera déclenché et un message d'erreur sera affiché.
La chaîne de la partie heure doit être composée de 2 à 3 chaînes numériques et séparées par les caractères délimiteurs définis dans les paramètres régionaux Windows. Les exigences de format doivent être conformes aux paramètres régionaux Windows, où HH, MM (heure, heure). minute) doit être ajouté, SS (seconde) est facultatif, vous pouvez également ajouter Am et Pm à la fin pour distinguer le matin et l'après-midi. A cette heure, le système pensera que la représentation sur 12 heures est utilisée, sinon ce sera le cas. considéré que la représentation sur 24 heures est utilisée.
Le format de la partie date doit être conforme au format de date court dans les paramètres régionaux de Windows, qui est également composé de 2 à 3 chaînes numériques. S'il n'y a que 2 chiffres dans la chaîne, on considère que le mois et la date sont identiques. spécifié, et l'année est l'année en cours,
Si les paramètres régionaux utilisent une représentation de l'année à deux chiffres, le système la traitera comme suit :
Pour la valeur de base de l’année de début de l’année en cours, saisissez l’année 03. Saisissez l’année 50. Saisissez l’année 68.
1998 0 1900 1903 1950 1968
2002 0 2000 2003 2050 2068
1998 50 1948 2003 1950 1968
2000 50 1950 2003 1950 1968
2002 50 1952 2003 2050 1968
2020 50 1970 2003 2050 2068
2020 10 2010 2103 2050 2068
Tout d’abord, obtenez l’année de début de l’année à deux chiffres dans les paramètres régionaux. Par exemple, si la plage d’années à deux chiffres est définie sur 1932-2031 dans les paramètres régionaux, l’année de départ est de 32 ans. 0, elle est considérée comme composée de deux chiffres. L'année représente ce siècle. Si l'année est effectivement supérieure à 0, la valeur de l'année en cours moins l'année de départ est utilisée. Cette valeur est appelée valeur de base. supérieure ou égale à cette valeur, il est considéré comme étant ce siècle, sinon il est considéré comme étant le siècle suivant. Donnez quelques exemples :
Procédure DateTimeToString :
Fonction FormatDateHeure :
Définition : procédure DateTimeToString(var Résultat : string ; const Format : string ; DateTime : TDateTime) ;
fonction FormatDateTime(const Format : chaîne ; DateTime : TDateTime) : chaîne ;
Fonction : obtenez la chaîne d'heure à afficher en définissant le format dans la chaîne de format. Par exemple, si vous souhaitez afficher "Aujourd'hui, nous sommes le vendredi 5 mai 2002", vous pouvez utiliser ces deux méthodes. fonction, mais une La chaîne de sortie est obtenue via des variables partagées. La valeur est dans Résultat L'autre consiste à obtenir la chaîne de sortie via la valeur de retour Le paramètre DateTime est la valeur de date que vous souhaitez afficher. flag et une chaîne supplémentaire. La chaîne supplémentaire est entourée de "", tout comme la fonction Printf en C. Par exemple, la valeur de format de "Aujourd'hui, nous sommes le vendredi 5 mai 2002" est "" Aujourd'hui est "aaaa", année "mm" mois "jj". day ," jjj', aaaa, mm, jj, jjj sont tous des identifiants de format. Les explications des différents identifiants de format sont les suivantes :
d : Utilisez un ou deux entiers pour afficher le jour (1-31)
dd : utilisez deux entiers pour afficher le jour et utilisez 0 pour compenser moins de deux chiffres (01-31)
ddd : affiche le numéro de la semaine en cours sous forme abrégée. Si Windows est une version anglaise, il sera affiché comme étant du lundi au dimanche. S'il s'agit d'une version chinoise, il sera affiché comme étant dddd.
dddd : affiche le numéro de la semaine actuelle au format complet. Si Windows est une version anglaise, Monday-SumDay sera affiché. S'il s'agit d'une version chinoise, Monday-Sunday sera affiché.
ddddd : Sortie au format de date court dans les paramètres régionaux.
dddddd : Sortie au format de date long dans les paramètres régionaux.
m : Utilisez un ou deux entiers pour afficher le mois (1-12)
mm : utilisez deux nombres entiers pour afficher le mois. S'il y a moins de deux chiffres, utilisez 0 pour composer (01-12).
mmm : utilisez une abréviation pour afficher le nom du mois. La version anglaise est affichée sous la forme Jan-Dec et la version chinoise est la même que mmmm.
mmmm : utilisez la méthode complète pour afficher le nom du mois. La version anglaise affiche janvier-décembre et la version chinoise affiche janvier à décembre.
yy : affiche l'année sous forme d'entier à deux chiffres (00-99)
aaaa : affiche l'année sous la forme d'un nombre entier à quatre chiffres (0000-9999)
h : utilisez un ou deux entiers pour afficher l'heure (0-23)
hh : utilisez deux nombres entiers pour afficher l'heure. S'il y a moins de deux chiffres, utilisez 0 pour compenser (00-23).
n : utilisez un ou deux nombres entiers pour afficher les minutes (0-60)
nn : utilisez deux nombres entiers pour afficher les minutes et utilisez 0 pour compenser moins de deux chiffres (00-60)
s : utilisez un ou deux entiers pour afficher les secondes (0-60)
ss : utilisez deux nombres entiers pour afficher les secondes et utilisez 0 pour compenser moins de deux chiffres (00-60)
z : Afficher les millisecondes avec un à deux entiers (0-999)
zzz : utilisez des nombres entiers à trois chiffres pour afficher les millisecondes. S'il y a moins de trois chiffres, utilisez 0 pour compenser (000-999).
tt : affiche la date au format de la locale
am/pm : utilisé pour l'affichage sur 12 heures, AM représentant de 0 à 12 heures et pm représentant de 12 à 0 heures.
Variables liées au temps :
Delphi encapsule diverses informations sur les paramètres locaux et définit une série de variables. Voici quelques variables liées au temps :
Séparateur de dates : caractère
Séparateur de date, utilisé pour séparer l'année, le mois et le jour
Séparateur de temps : char
Séparateur de temps utilisé pour séparer les heures, les minutes et les secondes
ShortDateFormat : chaîne
Définition du format de date court dans les paramètres régionaux.
FormatDateLong : chaîne
Définition du format de date long dans les paramètres régionaux.
ShortTimeFormat : chaîne
Définition du format d'heure court en langue locale.
LongTimeFormat : chaîne
Définition du format long en locale.
TimeAMString : chaîne
Une chaîne utilisée pour représenter le matin
TimePMString : chaîne
Une chaîne utilisée pour représenter l'après-midi
ShortMonthNames : tableau[1..12] de chaîne ;
Le tableau utilisé pour abréger le nom du mois est la chaîne identifiée par mmm affichée lors de l'utilisation de FormatDateTime.
LongMonthNames : tableau[1..12] de chaîne ;
Le tableau utilisé pour représenter entièrement le nom du mois est la chaîne identifiée par mmmm affichée lors de l'utilisation de FormatDateTime.
ShortDayNames : tableau[1..7] de chaîne ;
Le tableau utilisé pour abréger le nom du jour de la semaine est la chaîne identifiée par ddd affichée lors de l'utilisation de FormatDateTime.
LongDayNames : tableau[1..7] de chaîne ;
Le tableau utilisé pour représenter entièrement le nom de la semaine est la chaîne identifiée par ddd affichée lors de l'utilisation de FormatDateTime
TwoDigitYearCenturyWindow : Mot = 50 ;
Année de départ en cas d'utilisation d'années à deux chiffres.
Bon, maintenant la partie sur les opérations temporelles dans Delphi est pratiquement terminée. Les lecteurs peuvent également consulter les fichiers d'aide correspondants pour résoudre les problèmes qu'ils rencontrent en fonction de leurs propres besoins lors de l'utilisation de la programmation réelle.