Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
Sum hours
Message
De
27/06/2005 05:41:21
 
 
À
27/06/2005 05:13:26
Information générale
Forum:
Visual FoxPro
Catégorie:
Codage, syntaxe et commandes
Titre:
Versions des environnements
Visual FoxPro:
VFP 8
Database:
Visual FoxPro
Divers
Thread ID:
01026630
Message ID:
01026638
Vues:
19
hi,
the first part,the result is 000000:01
second part nothing, maybe i use it with rong way
the third part,i get error message data type mismatch

i need to use this code with this code under
USE curbilldata

DO WHILE NOT EOF() 
     m.divi = curbilldata.divi
     DO WHILE m.divi = curbilldata.divi AND NOT EOF()
          SKIP
     ENDDO
     
          
 IF NOT EOF()
          m.lnCurRec = RECNO()
          INSERT BEFORE BLANK
    SUM VAL(LEFT(m1_m,2))*3600 + ;
    VAL(SUBSTR(m1_m,4,2))*60 + ;
    VAL(RIGHT(m1_m,2)) TO lnSec for m.divi = curbilldata.divi
m.dae= PADL(INT(lnSec/3600), 6, "0") + ":" + ;
      PADL(INT((lnSec%3600)/60),2, "0")

          
          
          GOTO m.lnCurRec
           replace m1_m WITH m.dae
           SKIP &&& i get error
     ENDIF
ENDDO
thanks

>More typos:
>SUM VAL(LEFT(m1_m,2))*3600 + ;
>    VAL(SUBSTR(m1_m,4,2))*60 + ;
>    VAL(RIGHT(m1_m,2)) TO lnSec
>m.dae= PADL(INT(lnSec/3600), 6, "0") + ":" + ;
>      PADL(INT((lnSec%3600)/60),2, "0")
>However, I STRONGLY recommend that you add a TimeToSeconds function to your library:
>Function TimeToSeconds
>Lparameter indata
>Return VAL(LEFT(indata,2))*3600 + VAL(SUBSTR(indata,4,2))*60 + VAL(RIGHT(indata,2))
>And a SecondsToHour function:
>Function SecondsToHour
>Lparameter indata
>Return PADL(INT(indata/3600), 6, "0") + ":" + PADL(INT((indata%3600)/60),2, "0")
>This way your formula will be:
>m.dae=SecondToHour( TimeToSeconds('34:20') + TimeToSeconds('36:40') + TimeToSeconds('71:10') + TimeToSeconds('66:10'))
>Remember, it's much more readable to create a library of functions, and use these functions, instead of using the complete formulas many places.
>
>
>>hi,
>>i try it before, i get result 210:28
>>the result must be 208:20
>>
>>thank you.
>>
>>>>hi all,
>>>>i try to sum this hours and minuts via this code under , it sum hours ok,
>>>>somthing rong with minuts
>>>>ex:34:20+36:40+71:10+66:10 the result must be 208:20
>>>>
>>>>via this code under i get 208:44
>>>>
>>>> SUM VAL(LEFT(m1_m,8))*3600 + ;
>>>>            VAL(SUBSTR(m1_m,6,2))*30 + ;
>>>>            VAL(RIGHT(m1_m,2)) TO lnSec
>>>>          m.dae= PADL(INT(lnSec/3600), 6, "0") + ":" + ;
>>>>                 PADL(INT((lnSec%3600)/60),2, "0")
>>>>
>>>>thanks.
>>>
>>>I see a typo in your formula, change 30 to 60! 60 is for 60 minutes in an hour, 30 means nothing.
Précédent
Suivant
Répondre
Fil
Voir

Click here to load this message in the networking platform