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

Algorithmes et structures de données Discussion :

Codage de l'heure ..


Sujet :

Algorithmes et structures de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé

    Inscrit en
    Novembre 2002
    Messages
    815
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 815
    Par défaut Codage de l'heure ..
    bonjour ,

    Existe il un algorithme permettant de coder la date et l'heure de window sous forme numérique , sur 6 digit max et en conservant l'ordre croissant des valeur numerique en fonction du temps ?

    Le but n'est pas de retrouver l'heure d'apres cette forme numèrique , mais seulement de generer une suite de valeur numerique croissante en fonction du temps.

    le but est de gerer un chrono ( une liste numérique ) de la creation de fichiers . et on ne veut pas stocker cette valeur sur le disque d'ou l'utilisation de la date.

    merci d'avance

  2. #2
    Membre actif Avatar de larnicebafteur
    Inscrit en
    Mai 2006
    Messages
    133
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 133
    Par défaut
    En langage C, il existe une fonction qui retourne le nombre de secondes depuis une date fixe (le 1er janvier 1970 je crois).
    Donc, connaissant une date, on peut calculer le nombre de secondes, et récirpoquement, connaissant ce nombre de secondes, on peut retrouver la date correspondante.
    Cette fonction doit plus ou moins exister dans n'importe quel langage.
    Cela dit, sur 6 digit, cela ne doit pas etre faisable ...

  3. #3
    Membre éclairé

    Inscrit en
    Novembre 2002
    Messages
    815
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 815
    Par défaut
    salut , oui en effet çà existe aussi en delphi !

    en ce moment je me trouve avec deux valeurs , aprés retait des infos non utiles , il me reste :
    - une valeur de [0..9999] pour determiner la date .
    - une valeur de [0..99999] pour determiner l'heure .

    mais j ai un maximun de 9 digits .

    je me demandai si il y avait pas une astuce , avec ces deux valeurs d'en determiner une 3 eme qui soit plus petite en taille de digit tout en respectant la chronologie

  4. #4
    Modérateur
    Avatar de gangsoleil
    Homme Profil pro
    Manager / Cyber Sécurité
    Inscrit en
    Mai 2004
    Messages
    10 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Manager / Cyber Sécurité

    Informations forums :
    Inscription : Mai 2004
    Messages : 10 150
    Par défaut
    Bonjour,

    Tu veux la date et l'heure sur 6 chiffres...

    Au mieux, en ne faisant un calendrier qui n'est valable que pendant 99 ans, tu vas coder la date de la facon qui suit, en base 10 :
    jjmmaa

    Si au lieu de chiffres tu peux utiliser une chaine de 6 caractères, tu as la solution suivante :

    Si tu te mets en base 36 (c'est à dire que tes chiffres seront 0, 1, .., 9, A, B, .., Z), tu peux réduire ca à 4 chiffres : jmaa

    Dans ce cas, il te reste 2 chiffres disponibles. Sur le premier, tu peux coder l'heure. On arrive donc à : jmaah
    En revanche, comme tu as 60 minutes mais seulement 36 symbloes (10 chiffres et 26 lettres), il te faut 2 chiffres en base 36 pour représenter les minutes.
    Le fait de distinguer les majuscules des minuscules te permettant d'ajouter 26 caractères, tu arrives à 62 chiffres (0, .., 9, A, .. Z, a, .. z), ce qui te permet d'obtenir une "date" codée de la forme suivante :
    jmaahm

    Tu obtiens ainsi un "calendrier" te permettant de compter sur 3844 ans.

    Ensuite, il y a juste l'affichage de la date dans un format compréhensible par un humain à gérer, mais ca doit être tout à fait faisable.
    "La route est longue, mais le chemin est libre" -- https://framasoft.org/
    Les règles du forum

  5. #5
    Expert confirmé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 419
    Par défaut
    la réponse est jolie et bien pensée
    mais je me demande s'il n'y a pas confusion entre la chaine restitutée
    en base 200 par exemple on pourrait écrire 199 en mettant [FONT=Arial]Ç[/FONT]
    qui ne fait bien q"un caractère à l'affichage mais qui nécessite un octet
    pour écrire
    si bien que d'aprés mes calculs (je suis pas trop sur) on ne doit pas pouvoir écrire en moins de 5 octets en base 256 si on veut une précision de l'ordre de la seconde
    on gagne 3 octets par rapport à la représentation standard qui a une précision supérieure
    au prix du disque dur cela me parait cher payé compte tenu de la perte de
    l'accés aux fonctions intégrées
    pour une liste numérique chrono un nuéro séquentiel utilisant un long
    serait codé sur 4 octets
    si c'est bien l'ordre chrono que l'on recherche et non la date elle même

  6. #6
    Modérateur
    Avatar de gangsoleil
    Homme Profil pro
    Manager / Cyber Sécurité
    Inscrit en
    Mai 2004
    Messages
    10 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Manager / Cyber Sécurité

    Informations forums :
    Inscription : Mai 2004
    Messages : 10 150
    Par défaut
    Bonjour,

    Citation Envoyé par random
    la réponse est jolie et bien pensée
    Merci beaucoup. Je trouve ca joli aussi

    Citation Envoyé par random
    mais je me demande s'il n'y a pas confusion entre la chaine restitutée
    C'est fort possible.

    Concernant le nombre d'octets utilisé, sauf erreur, la question posée est sur "6 digits", que j'ai basiquement traduit par chiffre. Je ne me suis effectivement jamais posé la question des octets utilisés, ni même du fait que la solution proposée demande l'utilisation de chaines de caractères, ce qui n'est pas forcément possible.

    Citation Envoyé par random
    au prix du disque dur cela me parait cher payé compte tenu de la perte de l'accés aux fonctions intégrées
    Je pense que le but n'est pas de gagner de la place sur un disque dur, mais plus sur une représentation mémoire, ou quelque chose dans ce goût là.

    En tout cas, il est certain que la solution de changer de base pour avoir plus de caractères nécessite des traitements lourds, qui risquent d'être couteux en processeur et/ou mémoire utilisée.
    "La route est longue, mais le chemin est libre" -- https://framasoft.org/
    Les règles du forum

Discussions similaires

  1. [CR ?] Somme d'heure sous Crystal ?
    Par Peter PARKER dans le forum SAP Crystal Reports
    Réponses: 1
    Dernier message: 17/04/2003, 16h24
  2. [VBA-E] [Excel] Lancer une macro à une heure donnée
    Par Lysis dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 16/10/2002, 12h15
  3. [VB6] [Datareport] Heure d'impression ds pied de page
    Par oazar dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 03/10/2002, 10h11
  4. codage objet
    Par charly dans le forum Algorithmes et structures de données
    Réponses: 18
    Dernier message: 22/08/2002, 16h49
  5. Réponses: 11
    Dernier message: 23/07/2002, 14h33

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