Página 1 de 1

sectotime()

Enviado: 16 Jan 2020 11:12
por cMach
Bom dia!
Alguém sabe informar se esta função não processa valores negativos?

Converte os segundos para hora normalmente quando se trata de valores positivos. Porem, se encontrar negativo ela retorna o valor com (*). ex:

s1 = 5520
s2 = -5520

? sectotime(s1)
? sectotime(s2)

01:32:00
- 1:**:00

sectotime()

Enviado: 16 Jan 2020 19:18
por alxsts
Olá!

Se 5520 segundos representa 1:32:00 depois da meia noite, -5520 segundos representa 1:32:00 antes da meia noite (no dia anterior):

Código: Selecionar todos

FUNCTION SecAsTime( nSecs )

   If nSecs < 0
      nSecs += 24 * 60 * 60
   Endif

RETURN SecToTime ( nSecs )

sectotime()

Enviado: 17 Jan 2020 09:03
por cMach
Bom dia amigo!

Acontece que neste caso trata-se de calculo de horas . Estes segundos que estão negativos devem ser exibidos como negativos mesmo.

sectotime()

Enviado: 17 Jan 2020 15:51
por Kapiaba
Dificil entender o que você quer fazer.

Código: Selecionar todos

FUNCTION Main()

   LOCAL nBeginning, nEnd, cBegin, cEnd

   nBeginning :=  5520
   nEnd       := -5520

   ? SECTOTIME( nEnd - nBeginning )

   ? SECTOTIME( nBeginning - nEnd )


   //   ? SECTOTIME( nEnd, .T. )

   ? TimeToSec( nBeginning - nEnd )


   /*
   ? TimeToSec("12:44:33:22")                 // Result:  45873.22

   cBegin      :=  "12:55:44:33"
   cEnd        :=  "14:56:12:22"

   ? TimeToSec(cEnd) - TIMETOSEC(cBegin)      // Period in seconds

   ? TimeToSec("12")
   ? TimeToSec("12:44)
   ? TimeToSec("12:44:33)
   ? TimeToSec("12:44:33:22")
   */

RETURN NIL