Page 1 of 1

clase Ttime método cAdd (RESUELTO)

Posted: Mon Feb 12, 2024 12:45 pm
by jose_murugosa
La función cSub no me da problemas, pero la cAdd que debería sumar las horas me da error.
Este es testtim2.prg modificado para mostrar el error.

Code: Select all | Expand

#include "FiveWin.ch"

//----------------------------------------------------------------------------//

function Main()

   local oTime1 := TTime():System()
   local oTime2 := TTime():New( 1, 20 )

   MsgInfo( "System time: "   + oTime1:cGetTime() + CRLF + ;
            "Test time:   "  + oTime2:cGetTime() + CRLF + ;
            "=================="                + CRLF + ;
            "Difference:  "  + oTime1:cAdd( oTime2 ) )

return nil
 
Error:

Code: Select all | Expand

Application
===========
   Path and name: C:\fwh\samples\testtim2.exe (32 bits)
   Size: 4,933,632 bytes
   Compiler version: Harbour 3.2.0dev (r2104281802)
   FiveWin  version: FWH 23.10
   C compiler version: Borland/Embarcadero C++ 7.0 (32-bit)
   Windows 11 64 Bits, version: 6.2, Build 9200 

   Time from start: 0 hours 0 mins 0 secs 
   Error occurred at: 02/12/24, 09:45:01
   Error description: Error BASE/1072  Argument error: <>
   Args:
     [   1] = O   TTIME
     [   2] = N   0

Stack Calls
===========
   Called from: .\source\classes\TIME.PRG => TTIME:NEW( 36 )
   Called from: .\source\classes\TIME.PRG => TTIME:CADD( 56 )
   Called from: testtim2.prg => MAIN( 16 )

System
======
   CPU type: Intel(R) Core(TM) i5-6400T CPU @ 2.20GHz 2208 Mhz
   Hardware memory: 12063 megs

   Free System resources: 90 %
        GDI    resources: 90 %
        User   resources: 90 %

   Windows total applications running: 3
      1 Conmutación de tareas, C:\fwh\samples\testtim2.exe                                                                         
      2 GDI+ Window (TabTip.exe),                                                                                                     
      3 GDI+ Window (xEdit.exe), C:\Windows\WinSxS\x86_microsoft.windows.gdiplus_6595b64144ccf1df_1.1.22621.2506_none_9fa484a5e29783 

Variables in use
================
   Procedure     Type   Value
   ==========================
   TTIME:NEW
     Param   1:    O    Class: ERROR
   TTIME:CADD
     Param   1:    O    Class: TTIME
     Param   2:    N    0
     Param   3:    N    0
     Local   1:    S    @_NTIME()
     Local   2:    O    Class: TTIME
     Local   3:    O    Class: TTIME
     Local   4:    N    0
     Local   5:    U    
     Local   6:    U    
   MAIN
     Param   1:    O    Class: TTIME
     Local   1:    U    
     Local   2:    U    
     Local   3:    U    

Linked RDDs
===========
   DBF
   DBFFPT
   DBFBLOB
   DBFCDX
   DBFNTX

DataBases in use
================

Classes in use:
===============
     1 ERROR
     2 HBCLASS
     3 HBOBJECT
     4 TTIME
     5 TREG32
     6 TSTRUCT

Memory Analysis
===============
      726 Static variables

   Dynamic memory consume:
      Actual  Value:     524288 bytes
      Highest Value:     524288 bytes

 

Re: Error en clase Ttime método cAdd

Posted: Mon Feb 12, 2024 3:32 pm
by Antonio Linares
Estimado Jose,

El método cAdd() espera tres parámetros:

METHOD cAdd( nHours, nMinutes, nSeconds )

Re: Clase Ttime método cAdd ( RESUELTO )

Posted: Mon Feb 12, 2024 5:10 pm
by jose_murugosa
Gracias Antonio,
Pensé que era como el método cSub, ya que ambos reciben tres parámetros, pero éste por lo que vi en los fuentes si nhora no es numérico asume que es un objeto time.

Eso resuelve mi duda.

No estaría mejor que los dos métodos aceptaran: horas, minutos y segundos u objeto time, las dos posibilidades ?
Es una sugerencia quizás para la próxima version :D