[Just Basic] heure

Résolu
Bonjour,
j'aimerai savoir comment mettre dans une variable l'heure pas la secondes et minutes
merci
Configuration: Windows XP
Firefox 2.0.0.14

15 réponses

  1. re,
    j'ai reussis

    [entrée]

    rem demande la date et l'heure de naissance et definit la date et l'heure d'aujourd'hui

    prompt "année de naissance : "; Annee

    prompt "mois de naissance : " ; Mois

    prompt "jours de naissance : "; Jour

    prompt "heure de naissance : "; Heure

    date2$ = DATE$("mm/dd/yyyy")

    AnneeActuelle = VAL(RIGHT$(date2$, 4))

    print AnneeActuelle

    MoisActuelle=VAL(LEFT$(date2$, 2))

    print MoisActuelle

    JourActuelle = VAL(MID$(date2$, 4, 2))

    print JourActuelle

    HeureActuelle = Val(TIME$())

    print HeureActuelle

    end

    print AnneeActuelle;" ";MoisActuelle;" ";JourActuelle;" ";HeureActuelle

    end
    [calcule]

    rem calcule les differentes données

    NBAnnee = AnneeActuelle-Annee

    NBMois = (12-Mois)+(12-MoisActuelle)+12*(NBAnnee-1)

    NBJour = (360-Mois*30)+(360-MoisActuelle*30)+360*(NBAnnee-1)

    NBHeure = (24*360-Mois*30*24)+(24*360-MoisActuelle*30*24)+360*24*(NBAnnee-1)

    [affichage]

    rem affiche les annees mois jours heures

    print "il y a eu exactement " ; NBAnnee; " années qui se sont écoulé"

    print "il y a eu exactement " ; NBMois; " mois qui se sont écoulé"

    print "il y a eu exactement " ; NBJour; " jours qui se sont écoulé"

    print "il y a eu exactement " ; NBHeure; " heures qui se sont écoulé"

    confirm "Avez-vous fini"; answer$

    if answer$ = "no" then [entrée]

    notice "fin"

    end
    1. Bonjour,

      Je suis désolé de te dire que ton programme est faux
      1) une année a 365 jours (et non 360) sauf les années bissextiles qui en ont 366
      2) les mois n'ont pas tous 30 jours

      j'ai fais le calcul avec ton programme:
      Date de naissance : 25/12/2007 à 0 heures
      Date actuelle : 30/04/2008 à 9 heures
      Résultat : 5760 heures ce qui est faux, une petite verif sur Excel donne 3033 heures

      Tu ferais mieux de tester le programme que je t'ai donné

      Bonne continuation.
      1. tre

        j'ai oublier de dire mais dans ma donné il faut que 30 jour par mois et 360 jour dans l'année
        1. Re,

          De toute manière il y a quelque chose de faux dans ton raisonnement

          En faisant le calcul avec comme données

          Date de naissance : 25/12/2007 à 0 heures
          Date actuelle : 30/04/2008 à 9 heures

          On trouve une différence de plus de 2700 heures, entre la réalité et le résultat calculé, c'est un peu beaucoup, mais c'est toi qui juges.
          1. salut

            voici le code revu

            [entrée]

            rem demande la date et l'heure de naissance et definit la date et l'heure d'aujourd'hui

            prompt "année de naissance : "; Annee

            prompt "mois de naissance : " ; Mois

            prompt "jours de naissance : "; Jour

            prompt "heure de naissance : "; Heure

            date2$ = DATE$("mm/dd/yyyy")

            AnneeActuelle = VAL(RIGHT$(date2$, 4))

            MoisActuelle=VAL(LEFT$(date2$, 2))

            JourActuelle = VAL(MID$(date2$, 4, 2))

            [calcule]

            rem calcule les differentes données

            NBAnnee = AnneeActuelle-Annee

            NBMois = (12-Mois)+(MoisActuelle)+12*(NBAnnee-1)

            NBJour = 30*NBMois+JourActuelle-Jour

            NBHeure = NBJour*24

            [affichage]

            rem affiche les annees mois jours heures

            print "il y a eu exactement " ; NBAnnee; " années qui se sont écoulé"

            print "il y a eu exactement " ; NBMois; " mois qui se sont écoulé"

            print "il y a eu exactement " ; NBJour; " jours qui se sont écoulé"

            print "il y a eu exactement " ; NBHeure; " heures qui se sont écoulé"

            confirm "Avez-vous fini"; answer$

            if answer$ = "no" then [entrée]

            notice "fin"

            end
            1. C'est mieux,

              Encore un détail, tu as oublié l'heure actuelle et la calcul des années est incorrect
              Voici la correction et ce sera bon.
              HeureActuelle = VAL(TIME$)
              
              REM calcule les differentes données
              
              NBAnnee = AnneeActuelle - Annee - 1
              
              NBMois = (12 - Mois) + (MoisActuelle) + 12 * (NBAnnee)
              
              NBJour = 30 * NBMois + JourActuelle - Jour
              
              NBHeure = NBJour * 24 + (24 - heure) + HeureActuelle
              

              Salut.
              1. Bonjour,

                En Basic, il y a une fonction Time$ qui retourne une chaine représentant l'heure système

                heure$=Time$
                Print heure$

                il ne reste plus qu'à traiter la variable heure$ pour en extraire la partie qui t'interesse, en utilisant les fonction left$, right$ et mid$.

                A+.
                1. bonsoir,

                  Il n'y a pas de fonction en Just Basic ni en QBasic pour calculer directement le nombre de jours entre 2 dates.

                  J'ai écrit ce programme qui calcule le nombre d'heures écoulées depuis l'heure de naissance jusqu'à l'heure actuelle.
                  Ce programme est pour QBasic, je pense qu'il est compatible avec Just Basic.

                  Entre la date de naissance avec le bon format par exemple 01/02/2008 (et pas 1/2/08), parce que je n'ai pas contrôlé la saisie.

                  Essaie et dit moi si ça marche.

                  DECLARE FUNCTION mois (num)
                  DECLARE FUNCTION bissextile (annee)
                  
                  PRINT "Entrez la date de naissance jj/mm/aaaa : ";
                  INPUT date1$
                  PRINT
                  PRINT
                  
                  mois1 = VAL(LEFT$(date1$, 2))
                  jour1 = VAL(MID$(date1$, 4, 2))
                  annee1 = VAL(RIGHT$(date1$, 4))
                  
                  PRINT "Entrez l'heure de naissance : ";
                  INPUT heure1
                  PRINT
                  PRINT
                  
                  REM Date du jour actuel
                  date2$ = DATE$
                  jour2 = VAL(LEFT$(date2$, 2))
                  mois2 = VAL(MID$(date2$, 4, 2))
                  annee2 = VAL(RIGHT$(date2$, 4))
                  
                  REM Heure courante
                  heure2 = VAL(TIME$)
                  
                  
                  REM Cas général
                  IF annee1 < annee2 THEN
                  
                  REM Nombre d'années entières
                     FOR i = annee1 + 1 TO annee2 - 1
                        jours = jours + 365 + bissextile(i)
                     NEXT
                     
                  REM Nombre de jours année de naissance
                     jours = jours + mois(mois1) - jour1
                     IF mois1 = 2 THEN jours = jours + bissextile(annee1)
                     
                     FOR i = mois1 + 1 TO 12
                        jours = jours + mois(i)
                        IF i = 2 THEN jours = jours + bissextile(annee1)
                     NEXT
                   
                  REM Nombre de jours année courante  
                     FOR i = 1 TO mois2 - 1
                        jours = jours + mois(i)
                        IF i = 2 THEN jours = jours + bissextile(annee2)
                     NEXT
                  
                  REM Calcul des heures   
                     jours = jours + jour2 - 1
                     heures = 24 - heure1
                     heures = heures + (jours * 24)
                     heures = heures + heure2
                     
                  END IF
                  
                  REM Cas particulier année de naissance = année en cours
                  IF annee1 = annee2 AND mois1 < mois2 THEN
                  
                     jours = mois(mois1) - jour1
                     
                     FOR i = mois1 + 1 TO mois2 - 1
                        jours = jours + mois(i)
                        IF i = 2 THEN jours = jours + bissextile(annee2)
                     NEXT
                     
                     jours = jours + jour2 - 1
                     heures = 24 - heure1
                     heures = heures + (jours * 24)
                     heures = heures + heure2
                     
                  END IF
                  
                  REM Cas particulier année de naissance et mois de naissance = année encours et mois en cours
                  IF annee1 = annee2 AND mois1 = mois2 THEN
                  
                     jours = jour2 - jour1 - 1
                     heures = 24 - heure1
                     heures = heures + (jours * 24)
                     heures = heures + heure2
                     IF jour1 = jour2 THEN heures = heure2 - heure1
                     
                  END IF
                  
                  PRINT "Il s'est écoulé "; heures; " heures depuis la naissance"
                  
                  END
                  
                  FUNCTION bissextile (annee)
                  IF ((annee MOD 4 = 0) AND (annee MOD 100 > 0)) OR (annee MOD 400 = 0) THEN bissextile = 1 ELSE bissextile = 0
                  END FUNCTION
                  
                  FUNCTION mois (num)
                  IF num = 2 THEN mois = 28
                  IF num = 1 OR num = 3 OR num = 5 OR num = 7 OR num = 8 OR num = 10 OR num = 12 THEN mois = 31
                  IF num = 4 OR num = 6 OR num = 9 OR num = 11 THEN mois = 30
                  END FUNCTION
                  
                  
                  1. bonsoir,

                    Programme revu et corrigé

                    Dis moi si cette fois c'est bon.

                    PRINT "Entrez la date de naissance jj/mm/aaaa : ";
                    INPUT date1$
                    PRINT
                    PRINT
                    
                    jour1 = VAL(LEFT$(date1$, 2))
                    mois1 = VAL(MID$(date1$, 4, 2))
                    annee1 = VAL(RIGHT$(date1$, 4))
                    
                    PRINT "Entrez l'heure de naissance : ";
                    INPUT heure1
                    PRINT
                    PRINT
                    
                    date2$ = DATE$("mm/dd/yyyy")
                    
                    mois2 = VAL(LEFT$(date2$, 2))
                    jour2 = VAL(MID$(date2$, 4, 2))
                    annee2 = VAL(RIGHT$(date2$, 4))
                    
                    heure2 = VAL(TIME$())
                    
                    IF annee1 < annee2 THEN
                    
                       FOR i = annee1 + 1 TO annee2 - 1
                          jours = jours + 365 + bissextile(i)
                       NEXT
                    
                       jours = jours + mois(mois1) - jour1
                       IF mois1 = 2 THEN jours = jours + bissextile(annee1)
                    
                       FOR i = mois1 + 1 TO 12
                          jours = jours + mois(i)
                          IF i = 2 THEN jours = jours + bissextile(annee1)
                       NEXT
                    
                       FOR i = 1 TO mois2 - 1
                          jours = jours + mois(i)
                          IF i = 2 THEN jours = jours + bissextile(annee2)
                       NEXT
                    
                       jours = jours + jour2 - 1
                       heures = 24 - heure1
                       heures = heures + (jours * 24)
                       heures = heures + heure2
                    
                    END IF
                    
                    IF annee1 = annee2 AND mois1 < mois2 THEN
                    
                       jours = mois(mois1) - jour1
                    
                       FOR i = mois1 + 1 TO mois2 - 1
                          jours = jours + mois(i)
                          IF i = 2 THEN jours = jours + bissextile(annee2)
                       NEXT
                    
                       jours = jours + jour2 - 1
                       heures = 24 - heure1
                       heures = heures + (jours * 24)
                       heures = heures + heure2
                    
                    END IF
                    
                    IF annee1 = annee2 AND mois1 = mois2 THEN
                    
                       jours = jour2 - jour1 - 1
                       heures = 24 - heure1
                       heures = heures + (jours * 24)
                       heures = heures + heure2
                       IF jour1 = jour2 THEN heures = heure2 - heure1
                    
                    END IF
                    PRINT "Nous sommes le "; MID$(date2$, 4, 2) ; "/" ; LEFT$(date2$, 2) ; "/" ; annee2 ; "  à "; heure2 ;"h"
                    PRINT
                    PRINT "Il s'est écoulé "; heures; " heures depuis la naissance"
                    
                    END
                    
                    FUNCTION bissextile (annee)
                    IF ((annee MOD 4 = 0) AND (annee MOD 100 > 0)) OR (annee MOD 400 = 0) THEN bissextile = 1 ELSE bissextile = 0
                    END FUNCTION
                    
                    FUNCTION mois (num)
                    IF num = 2 THEN mois = 28
                    IF num = 1 OR num = 3 OR num = 5 OR num = 7 OR num = 8 OR num = 10 OR num = 12 THEN mois = 31
                    IF num = 4 OR num = 6 OR num = 9 OR num = 11 THEN mois = 30
                    END FUNCTION
                    
                    1. bonjour,
                      y a-t-il quelqu'un sa serai bien de même juste dire un truc svp c'est assez pressent merci de votre comprention
                      1. je veut dire j'ai comprit mais pour calculer combien d'heure ecroule de tellle date
                        1. Re,

                          Je ne comprends pas ce que tu veux. Je n'ai pas JustBasic mais QBasic, je pense que c'est à peu prés pareil.

                          Voilà ce que j'ai codé en QBasic

                          heure$ = TIME$
                          PRINT heure$

                          affichage-> 12:53:05

                          n% = INSTR(heure$, ":")
                          heure$ = LEFT$(heure$, n% - 1)
                          PRINT heure$

                          affichage-> 12

                          C'est pas ça que tu voulais? Alors donne un exemple.

                          A+.
                          1. re,

                            j'ai un gars né a 12 h le 7 juin 2000 et je veut savoir combien d'heure se sont écrouler automtaiquement jusqu'a cette heure icii automatique