[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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. je veut dire j'ai comprit mais pour calculer combien d'heure ecroule de tellle date
                        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. 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