IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Delphi Discussion :

Format de date


Sujet :

Langage Delphi

  1. #1
    Inactif  

    Inscrit en
    Juillet 2004
    Messages
    46
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 46
    Points : 135
    Points
    135
    Par défaut Format de date
    Je travaille sur des dates de l'OS et la documentation indique

    Date/time stamps are used in a number of places and for different purposes. The format of each such stamp, however, is always the same: that used by the time functions in the C run-time library.
    seulement voila la date est sur 4 octets par exemple 708992537 (#2A425E19) J'ai essaye de la passer dans un TDateTime mais j'obtiens un resultat incoherent du genre 19/08/42563!

    Je n'ai pas trouve trace de ce format? Avant d'aller poser la question aux Céistes on a peut être la solution chez nous(Delphi)

    John

  2. #2
    Rédacteur
    Avatar de Pedro
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    5 411
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 5 411
    Points : 8 078
    Points
    8 078
    Par défaut
    Salut
    ce résultat incohérent n'est pas tout simplement parce que le format de date sur 4 octets contient aussi l'heure?

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2003
    Messages
    560
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 560
    Points : 576
    Points
    576
    Par défaut
    Bonjour

    Dans un TDateTime un jour = 1.
    Une heure est donc égale à 1/24.
    Une minute 1/24/60.
    etc.. jusqu'a la milliseconde.

    Pour plus d'explication je vous transmet le texte de l'aide de Delphi. En français bien sure

    TDateTime représente une valeur date et heure en langage Delphi.

    Unité

    System

    Syntaxe Delphi :

    type TDateTime =typeDouble;

    Description

    La plupart des objets CLX représentent les valeurs date et heure en utilisant une valeur TDateTime.Dans Delphi,TDateTime est un type mappéen un Double.Dans C++,la classe TDateTime correspond au type TDateTime de Delphi.

    La partie entière d'une valeur TDateTime de Delphi représente le nombre de jours écoulés depuis le 30/12/1899.La partie fractionnaire de la valeur TDateTime est la partie des 24 heures écoulée.

    Voici quelques exemples de valeurs TDateTime avec les dates et heures correspondantes*:

    0 30/12/1899 12:00 am
    2.75 1/1/1900 6:00 pm
    -1.25 29/12/1899 6:00 am
    35065 1/1/1996 12:00 am
    Pour trouver le nombre fractionnaire de jours entre deux dates,il suffit de soustraire les deux valeurs,sauf si l'une des valeurs TDateTime est négative.De même,pour incrémenter une valeur date-heure d'un certain nombre fractionnaire de jours,ajoutez le nombre fractionnaire àla valeur date-heure si la valeur TDateTime est positive.
    Lors de la manipulation de valeurs TDateTime négatives,les calculs doivent traiter la partie heure séparément.La partie fractionnaire reflète la fraction d'une journée de 24*heures indépendamment du signe de la valeur TDateTime.Par exemple,6:00 am le 29/12/1899 est –1.25,et non –1 +0.25,ce qui reviendrait à–0.75.Il n'existe pas de valeur TDateTime entre –1 et 0.

    Remarque*: Delphi 1.0 calculait la date depuis l'an*1 et non depuis l'an*1899.Pour convertir une date Delphi 1.0 en valeur TDateTime dans les versions ultérieures du langage Delphi,il faut soustraire 693594,0 de la date Delphi 1.0.

  4. #4
    Inactif  

    Inscrit en
    Juillet 2004
    Messages
    46
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 46
    Points : 135
    Points
    135
    Par défaut Format date
    Merci de vos efforts j'avais lu la même partie de la doc mais mon probleme est qu'AU DEPART j'ai une date et heure de format inconnu
    J'ai quatre octets. C'est tout. Sachant generer un fichier contenant cette info j'ai joué avec la date du PC en avancant d'un jour
    J'ai une progression de l'ordre de 65-70 000 quotidiennement Il ne sagit donc pas de secondes (84 000/jour)
    le total divisé par 65000 donne 30 ans et quelques jours.
    Peut être le 20° anniverssaire de Billou?

    John

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2003
    Messages
    560
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 560
    Points : 576
    Points
    576
    Par défaut
    Une idée comme elle me vient.

    La fonction "FileDateToDateTime" convertie les date comme stocké dans les référence des fichiers (Date Os) en form TDatetime.

  6. #6
    Inactif  

    Inscrit en
    Juillet 2004
    Messages
    46
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 46
    Points : 135
    Points
    135
    Par défaut Date
    Bravo JF c'était bien une FileDate sur 4 octets convertie par un fFileDateToDateTime

    Merci à tous

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Format de date
    Par royrremi dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 01/06/2004, 18h32
  2. Détecter le format de date au démarrage
    Par stigma dans le forum Access
    Réponses: 2
    Dernier message: 20/02/2004, 12h04
  3. Réponses: 11
    Dernier message: 02/09/2003, 15h20
  4. Problème de Format de date
    Par titititi007 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 18/06/2003, 09h19
  5. Réponses: 3
    Dernier message: 06/05/2002, 19h24

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo