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

C Discussion :

Convertir seconde en date


Sujet :

C

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2018
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2018
    Messages : 5
    Points : 3
    Points
    3
    Par défaut Convertir seconde en date
    Bonsoir à tous,

    Voilà, je suis confronté à un problème et je pense que le titre est assez explicite.
    Je débute en C et j'aimerai convertir des seconde en une date.
    Alors oui, je sais que 60 sec = 1 min; que 60 min = 1 h etc...
    Mais lorsque ce chiffre dépasse le million voir même le milliard de seconde, je dois prendre en compte le nombre de jour, de mois et d'année...
    Cependant, tous les mois n'ont pas 30 jours, et toutes les années n'ont pas le même nombre de jour... et j'ignore comment faire sur ce point là...

    J'ai découvert la fonction time() et donc j'ai accès à la date, mais je ne sais pas comment ajouter mon dit nombre à cette date...

    Est ce que quelqu'un pourrait m'aider?

    Merci et bonne soirée à vous =)

  2. #2
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 689
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 689
    Points : 30 983
    Points
    30 983
    Billets dans le blog
    1
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2018
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2018
    Messages : 5
    Points : 3
    Points
    3
    Par défaut
    Bonsoir,

    Merci pour ce lien, cependant je n'ai pas trouvé ce que je souhaitais, peut être m'ai-je mal expliqué.
    J'ai un nombre, par exemple, 65432456 secondes.
    Je l'additionne, par exemple, à la date du 3 mars 2010 23h34.
    Et ce que je souhaite avoir, est à qu'elle date elle m'envoie après avoir additionné ces secondes.

    Bonne soirée

  4. #4
    Expert éminent sénior
    Homme Profil pro
    Analyste/ Programmeur
    Inscrit en
    Juillet 2013
    Messages
    4 630
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Analyste/ Programmeur

    Informations forums :
    Inscription : Juillet 2013
    Messages : 4 630
    Points : 10 556
    Points
    10 556
    Par défaut
    Tu prends ton point de départ (par exemple 3 mars 2010 23h34), ensuite tu appelles la fonction mktime pour avoir un timestamp (sinon -1 en cas d'erreur)

    En théorie le timestamp, c'est le nombre de secondes depuis l'epoch linux. Donc tu additionnes ton nombre de secondes avec ce timestamp -> current_time.

    Et ensuite tu appelles soit la fonction gmtime (convert time_t to tm as UTC time) soit la fonction localtime (convert time_t to tm as local time) avec current_time, pour avoir la date que tu recherches

    Mais je ne sais pas si cela va fonctionner, si tu vas avoir des problèmes avec les heures GMT ou pas, ...


    Tous les liens pointent vers cplusplus.com et sont en anglais

  5. #5
    Expert éminent
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Décembre 2015
    Messages
    1 565
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Décembre 2015
    Messages : 1 565
    Points : 7 648
    Points
    7 648
    Par défaut
    mktime() ça génère un temps dans le localtime, il faut faire à la fin la conversion inverse donc ça serait localtime().

    Et la gestion des datations existait avant le naissance de linux, et la référence à 1970 bien que définie par la première norme POSIX dans les années 80 où est aussi né Linux était déjà utilisée (je l'utilisais sous Unix, Multics et QNX donc avant la naissance de Linux). Donc le nom "epoch linux" m'a toujours fait marrer.

  6. #6
    Expert éminent sénior
    Homme Profil pro
    Analyste/ Programmeur
    Inscrit en
    Juillet 2013
    Messages
    4 630
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Analyste/ Programmeur

    Informations forums :
    Inscription : Juillet 2013
    Messages : 4 630
    Points : 10 556
    Points
    10 556
    Par défaut
    Citation Envoyé par dalfab Voir le message
    mktime() ça génère un temps dans le localtime, il faut faire à la fin la conversion inverse donc ça serait localtime().
    Comme je le disais, ce sont de [gros] détails qu'il faut régler ... mais merci pour la précision
    C'est plus l'addition qui est centrale : mais comme le type time_t est un entier, c'est surtout sa signification qu'il faut vérifier


    Citation Envoyé par dalfab Voir le message
    Et la gestion des datations existait avant le naissance de linux, et la référence à 1970 bien que définie par la première norme POSIX dans les années 80 où est aussi né Linux était déjà utilisée (je l'utilisais sous Unix, Multics et QNX donc avant la naissance de Linux). Donc le nom "epoch linux" m'a toujours fait marrer.
    Voici une liste d'epoch (<- lien wiki en français).

    Moi ce qui me fait marrer, c'est que Microsoft (mais pas que lui) a des epoch qui commence le "1er janvier 1601" ou le "30 décembre 1899"
    Et Apple et son unique epoch "1er janvier 2001"

Discussions similaires

  1. Convertir nombre en date heure minute seconde
    Par Totorote dans le forum SQL
    Réponses: 5
    Dernier message: 05/07/2017, 17h05
  2. Convertir secondes en date
    Par toufik135 dans le forum Général Java
    Réponses: 1
    Dernier message: 30/01/2014, 19h16
  3. Convertir secondes en dates
    Par marie_87 dans le forum Général Java
    Réponses: 5
    Dernier message: 29/12/2011, 15h13
  4. Convertir secondes en une date
    Par Ganondorf dans le forum Langage
    Réponses: 7
    Dernier message: 12/10/2007, 11h17
  5. [FLASH MX2004] Convertir chaine en date
    Par stip dans le forum Flash
    Réponses: 5
    Dernier message: 20/01/2005, 17h01

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