[Just Basic] heure

Résolu
macslan Messages postés 49 Statut Membre -  
 amigo -
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. macslan Messages postés 49 Statut Membre 4
     
    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
  2. amigo
     
    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
  3. macslan Messages postés 49 Statut Membre 4
     
    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
  4. amigo
     
    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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. macslan Messages postés 49 Statut Membre 4
     
    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
  7. amigo
     
    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
  8. amigo
     
    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+.
    0
  9. amigo
     
    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
    
    
    0
  10. macslan Messages postés 49 Statut Membre 4
     
    re,
    sa ne marche pas
    0
  11. amigo
     
    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
    
    0
  12. macslan Messages postés 49 Statut Membre 4
     
    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
  13. macslan Messages postés 49 Statut Membre 4
     
    salut,
    donne voir un exemple stp je ne comprend pas télement
    -1
  14. macslan Messages postés 49 Statut Membre 4
     
    je veut dire j'ai comprit mais pour calculer combien d'heure ecroule de tellle date
    -1
  15. amigo
     
    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
  16. macslan Messages postés 49 Statut Membre 4
     
    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