sectotime()

Projeto [x]Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

cMach
Usuário Nível 1
Usuário Nível 1
Mensagens: 23
Registrado em: 21 Out 2019 08:18
Localização: rio de janeiro

sectotime()

Mensagem 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
alxsts
Colaborador
Colaborador
Mensagens: 3092
Registrado em: 12 Ago 2008 15:50
Localização: São Paulo-SP-Brasil

sectotime()

Mensagem 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 )
[]´s
Alexandre Santos (AlxSts)
cMach
Usuário Nível 1
Usuário Nível 1
Mensagens: 23
Registrado em: 21 Out 2019 08:18
Localização: rio de janeiro

sectotime()

Mensagem 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.
Kapiaba
Colaborador
Colaborador
Mensagens: 1908
Registrado em: 07 Dez 2012 16:14
Localização: São Paulo
Contato:

sectotime()

Mensagem 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
Responder