[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

  • Votes
  • Date
  • Date décroissante
  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. 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. salut,
        donne voir un exemple stp je ne comprend pas télement
        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
              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. 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.