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 :

Programme calcul différence entre heures


Sujet :

C

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Décembre 2011
    Messages : 1
    Points : 0
    Points
    0
    Par défaut Programme calcul différence entre heures
    Bonjour mes amis j'ai un examen sur le language C mais je ne trouve pas la solution de ce programme. S'il vous plait, aidez moi aujourd'hui car l'examen est demain.
    Merci et que dieu aide.
    L'exercice est le suivant

    calculer le temp écoulé entre l'heure de depart et l'heure d'arrivée en C

  2. #2
    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
    Points : 28 119
    Points
    28 119
    Par défaut
    Bonjour,

    Je pense que ce que tu cherches est la fonction time().
    "La route est longue, mais le chemin est libre" -- https://framasoft.org/
    Les règles du forum

  3. #3
    Membre expérimenté

    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2011
    Messages
    685
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2011
    Messages : 685
    Points : 1 418
    Points
    1 418
    Par défaut
    bonjour,

    il y a peut-être plus simple, mais je te propose, si j'ai bien compris ton problème :

    tu convertis l'heure de départ en seconde, l'heure d'arrivée aussi, tu fais la différence, et tu converti le résultat au format de départ.

    Si t'as besoin de plus, n'hésite pas.

    Cordialement,
    Nullius in verba

  4. #4
    Membre expérimenté

    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2011
    Messages
    685
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2011
    Messages : 685
    Points : 1 418
    Points
    1 418
    Par défaut
    Bonjour,

    je sais pas si c'est entièrement correct, mes souvenirs C sont assez loins.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
     
    typedef struct s_heure
    {
       int heure;
       int minute;
       int seconde;
    }heure;
     
    int heure_to_secondes(heure heure_a_convertir);
    heure secondes_to_heure(int secondes_a_convertir);
     
    int main()
    {
       heure h_depart = {8,22,58};
       heure h_arrivee = {8,33,51};
       int sec_h_depart = heure_to_secondes(h_depart);
       int sec_h_arrivee = heure_to_secondes(h_arrivee);
     
       heure difference = secondes_to_heure(sec_h_arrivee-sec_h_depart);
       printf("difference entre les deux heures : %dh%dm%ds\n", difference.heure, difference.minute, difference.seconde);
     
    return 0;
    }
     
    int heure_to_secondes(heure heure_a_convertir)
    {
      return ((heure_a_convertir.heure*3600) + (heure_a_convertir.minute*60) + heure_a_convertir.seconde);
    }
     
     
    heure secondes_to_heure(int secondes_a_convertir)
    {
       int secondes_restantes = secondes_a_convertir;
       heure tmp = {0,0,0};
       tmp.heure = secondes_restantes%3600;
       secondes_restantes -= (tmp.heure*3600);
       tmp.minute = secondes_restantes%60;
       secondes_restantes -= (tmp.minute*60)
       tmp.secondes = secondes_restantes;
     
       return tmp;
    }
    Nullius in verba

  5. #5
    Expert confirmé Avatar de ManusDei
    Homme Profil pro
    vilain troll de l'UE
    Inscrit en
    Février 2010
    Messages
    1 619
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : vilain troll de l'UE

    Informations forums :
    Inscription : Février 2010
    Messages : 1 619
    Points : 4 350
    Points
    4 350
    Par défaut
    Citation Envoyé par gangsoleil Voir le message
    Bonjour,

    Je pense que ce que tu cherches est la fonction time().
    Et difftime pour avoir la différence entre les deux (attention, difftime renvoie un double).
    http://www.traducteur-sms.com/ On ne sait jamais quand il va servir, donc il faut toujours le garder sous la main

  6. #6
    Membre expérimenté

    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2011
    Messages
    685
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2011
    Messages : 685
    Points : 1 418
    Points
    1 418
    Par défaut
    Bonjour,


    ce n'est que mon avis, mais vu que c'est pour un examen je ne sais pas s'il aura le droit d'utiliser les fonctions toutes prêtes de la librairie standard du C.

    Sinon ce serait facile en effet
    Nullius in verba

  7. #7
    Futur Membre du Club
    Femme Profil pro
    n.d.
    Inscrit en
    Décembre 2011
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Autre

    Informations professionnelles :
    Activité : n.d.

    Informations forums :
    Inscription : Décembre 2011
    Messages : 5
    Points : 8
    Points
    8
    Par défaut
    j ai peut etre une solution plus simple que KAAMUI

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
     
    #include<stdlib.h>
    #include<stdio.h>
     
    int main(){int heure=0,minute=0,seconde=0,calcul=0;
     
     
    printf("heure de depart   :  ");
    scanf("%d",&heure);
     
     
     
     
                      printf("\nminute de depart  : ");
                      scanf("%d",&minute);
     
     
     
                                                printf("\nseconde de depart  :  ");
                                                scanf("%d",&seconde);
     
     
     
     
    calcul=(heure*3600)+(minute*60)+(seconde);
     
     
    system("cls");
     
     
     
     
    printf("heure d arrivee  :  ");
    scanf("%d",&heure);
     
     
     
                               printf("\nminute d arrivee  :  ");
                               scanf("%d",&minute);
     
                                                           printf("\nseconde    :  ");
                                                           scanf("%d",&seconde);
     
    calcul=-calcul+((heure*3600)+(minute*60)+seconde);
    heure=calcul/3600;
    minute=(calcul-(heure*3600))/60;
    seconde=((calcul-(heure*3600))-minute*60);
     
     
     
    system("cls");
     
     
    printf("durée  : %d h %d m %d s ",heure,minute,seconde);
     
     
    system("pause");
     
    }
    pas d appel de fonction pas de vecteur et seulement 4 variable

    maintenant si c est pour un examen ou un test si j étais professeur cela ne suffirait pas

    car si le calcul est bon tu dois exclure une heure d arrivée inférieur a l heure de départ

    tu dois aussi exclure des données hors normes (ex:heure d arrivée=75)

    et dans ce cas permettre une date pour calculer sur plusieurs jours

    mais je ne suis pas prof

    en tout cas code testé et fonctionnel
    Fichiers attachés Fichiers attachés

  8. #8
    Inactif  


    Homme Profil pro
    Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Inscrit en
    Décembre 2011
    Messages
    9 012
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2011
    Messages : 9 012
    Points : 23 145
    Points
    23 145
    Par défaut
    Tu n'es pas obligé de passer par les secondes :

    s = seconde arrivé - seconde départ
    (si < 0, m += 60 et minutes départ++ )

    Tu fais de même avec les minutes et l'heure.

    m = minute arrivé - minute départ
    (si < 0, m += 60 et heure départ++ )

    h= heure arrivé - heure départ
    (si < 0, m += 60 et jour départ++ )

    Puis du affiche le résultat : h Heures m Minutes s Secondes

    Bon, je ne t'ai donné que l'algo mais tu devrais être capable de le traduire en C^^

    Pour l'exclusion des données hors-normes, cela dépend de l'établissement, généralement il est précisé dans l’énoncé si il faut ou pas gérer cela.

    Mais dans un sens, avoir des variables < 0 ou >= 60 voir à virgule, peux permettre d'étendre l'intérêt de la fonction ex :
    Départ : 15854 secondes arrivée : 4762558 secondes, calculer le temps en h/m/s
    ou 4,78h et 8,45h etc...

Discussions similaires

  1. calcul différence entre deux heures dans une requete
    Par cornet04 dans le forum Requêtes et SQL.
    Réponses: 6
    Dernier message: 18/03/2015, 16h37
  2. [WD17] Calcul différence entre les heures
    Par karim15 dans le forum WinDev
    Réponses: 1
    Dernier message: 28/07/2013, 10h03
  3. Calcul différence entre deux heures
    Par flashnet dans le forum Langage
    Réponses: 4
    Dernier message: 21/06/2010, 20h39
  4. Calcul différence entre deux dates
    Par ouinih dans le forum PL/SQL
    Réponses: 1
    Dernier message: 31/12/2008, 18h53
  5. calcul différence entre dates
    Par igour dans le forum Access
    Réponses: 2
    Dernier message: 18/01/2007, 11h30

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