Date_heure

Soyez le premier à donner votre avis sur cette source.

Vue 7 165 fois - Téléchargée 1 562 fois

Description

Une étude sur les différentes façons d'afficher la date et l'heure système avec une description de la structute TSystemTime

Source / Exemple :


{===============================================================================
Code Source : BEAUMONT Christophe
Version     : 1.0.0
Date        : 25 Février 2010

Etude 02 - Utilisation de différentes méthodes pour afficher la date et l'heure
du système.
===============================================================================}

unit f_main;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls, XPMan, DateUtils;

type
  TMain_Form = class(TForm)
    Structure: TMemo;
    Bevel1: TBevel;
    wYear1: TLabel;
    wMonth1: TLabel;
    wDayOfWeek1: TLabel;
    wDay1: TLabel;
    wHour1: TLabel;
    wMinute1: TLabel;
    wSecond1: TLabel;
    wMilliseconds1: TLabel;
    XPLook: TXPManifest;
    Timer1: TTimer;
    Button_GetSystemTime: TButton;
    FDT1: TLabel;
    FDT2: TLabel;
    FDT3: TLabel;
    FDT4: TLabel;
    FDT5: TLabel;
    FDT6: TLabel;
    FDT7: TLabel;
    FDT8: TLabel;
    Button_FormatDateTime: TButton;
    DIV1: TLabel;
    DIV2: TLabel;
    DIV3: TLabel;
    Button_Divers: TButton;
    procedure Button_GetSystemTimeClick(Sender: TObject);
    procedure Button_FormatDateTimeClick(Sender: TObject);
    procedure Button_DiversClick(Sender: TObject);
  private
    { Déclarations privées }
  public
    { Déclarations publiques }
  end;

var
  Main_Form: TMain_Form;

implementation

{$R *.dfm}

// La première méthode va être d'utiliser une structure TSystemTime et de l'initialier
// avec la fonction GetSystemTime. Le défaut de cette méthode est de retourner sans
// traitement la date et l'heure UTC et sans tenir compte de l'heure d'été ou d'hiver.

procedure TMain_Form.Button_GetSystemTimeClick(Sender: TObject);
// On déclare la structure TSystemTime qui va recevoir les informations
var DateHeure : TSystemTime;
begin
// On récupère les infos système
 GetSystemTime(DateHeure);

 // On traite l'année
 wYear1.Caption := 'Nous sommes en '+IntToStr(DateHeure.wYear);
 // On traite le mois qui est retourné sous la forme d'un chiffre
 wMonth1.Caption := 'Le numéro du mois est le '+IntToStr(DateHeure.wMonth);
 // On traite le jour de la semaine retourné sous la forme d'un chiffre
 wDayOfWeek1.Caption := 'Le jour de la semaine est le '+IntToStr(DateHeure.wDayOfWeek);
 // On traite la date
 wDay1.caption := 'Le jour du mois est le '+IntToStr(DateHeure.wDay);
 // On traite l'heure UTC
 wHour1.Caption := 'Il est '+IntToStr(DateHeure.wHour)+' heures GMT';
 // On traite les minutes
 wMinute1.Caption := 'passées de '+IntToStr(DateHeure.wMinute)+' minutes';
 // On traite les secondes
 wSecond1.caption := 'et de '+intToStr(DateHeure.wSecond)+' secondes';
 // et on finit la structure TSystemTime avec les millisecondes
 wMilliseconds1.Caption := 'mais aussi de '+IntToStr(DateHeure.wMilliseconds)+' centièmes';
end;

// La seconde méthode est toute aussi simple mais cette fois donne l'heure réelle
// il suffit juste de maîtriser les conditions du formatage :
//    * yyyy : année sur quatre chiffres : 2010
//    * yy : année sur deux chiffres : 10
//    * mmmm : mois en clair : Février
//    * mmm : mois en abrégé : Fév
//    * mm : mois sur deux chiffres : 02
//    * m : mois sur un ou deux chiffres : 2
//    * dddd : jour en clair : Dimanche
//    * ddd : jour en abrégé : Dim
//    * dd : jour sur deux chiffres : 09
//    * d : jour sur un ou deux chiffres : 9
//    * hh : heure sur deux chiffres : 01
//    * h : heure sur un ou deux chiffres : 1
//    * nn : minute sur deux chiffres : 01
//    * n : minute sur un ou deux chiffres : 1
//    * ss : seconde sur deux chiffres : 01
//    * s : seconde sur un ou deux chiffres : 1
//    * z : millisecondes sans les préfixer d'un zéro (0 à 999)
//    * zzz : millisecondes en les préfixant d'un zéro (000 à 999)

procedure TMain_Form.Button_FormatDateTimeClick(Sender: TObject);
begin
// Voici quelques exemples, il suffit de se référer aux instructions de formatage
 FDT1.Caption := FormatDateTime('dddddd',Now);
 FDT2.Caption := FormatDateTime('d/m/y',Now);
 FDT3.Caption := FormatDateTime('dd/mm/yy',Now);
 FDT4.Caption := FormatDateTime('ddd d mmm yyy',Now);
 FDT5.Caption := FormatDateTime('dddd dd mmmm yyyy',Now);
 FDT6.Caption := FormatDateTime('h:n:s',Now);
 FDT7.Caption := FormatDateTime('hh:nn:ss',Now);
 FDT8.Caption := FormatDateTime('dddd dd mmmm yyyy hh:nn:ss',Now);
end;

// Voici une troisième méthode ainsi que quelques fonctions complémentaires sur
// les dates. Ne pas oublier de déclarer "DateUtils" dans les "Uses".
procedure TMain_Form.Button_DiversClick(Sender: TObject);
var Date1 : TDateTime;
begin
 Date1 := Now;

 DIV1.Caption := 'Nous somme le '+DateToStr(Date1)+' et il est '+TimeToStr(Date1);
 DIV2.Caption := IntToStr(DayOfTheYear(Date1))+' ème journée depuis le 01 Janvier';
 DIV3.Caption := IntToStr(WeekOfTheYear(Date1))+' ème semaine depuis le 01 Janvier';
end;

end.

Codes Sources

Ajouter un commentaire

Commentaires

Messages postés
420
Date d'inscription
samedi 17 mai 2003
Statut
Membre
Dernière intervention
6 mai 2019
15
Pour obtenir l'heure locale avec la méthode utilisant l'API de Windows, il suffit tout simplement d'utiliser "GetLocalTime" à la place de "GetSystemTime"...
Messages postés
16
Date d'inscription
lundi 6 janvier 2003
Statut
Membre
Dernière intervention
3 mars 2009

bonjour,

c'est bien ce petit rappel sur les dates , j'utilise la 2éme solution et je ne savais pas que 1er exister

a+

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.