2025-01-23 17:45 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)

* include/hbdate.h
  * src/common/hbdate.c
  * src/harbour.def
    + added new C functions:
         HB_BOOL hb_timeStrGetUTC( const char * szTime,
                                   int * piHour, int * piMinutes,
                                   int * piSeconds, int * piMSec,
                                   int * piUTCOffset );
         HB_BOOL hb_timeStampStrGetUTC( const char * szDateTime,
                                        int * piYear, int * piMonth,
                                        int * piDay, int * piHour,
                                        int * piMinutes, int * piSeconds,
                                        int * piMSec, int * piUTCOffset );
      They can decode timestamp value with ISO 8601 UTC offset.

  * src/common/hbdate.c
    * use hb_timeStampStrGetUTC() in hb_timeStampStrGetDT() and return UTC
      time if it was with UTC offset
      Now Harbour compiler accept timestamp strings with with UTC offset, i.e.
         ? t"2025-01-22 00:45 UTC+0100" // => 2025-01-21 23:45:00.000
      Also HB_StrToTS() supports it.

  * src/pp/hbpp.c
    * use new hb_timeStampStrGetDT() to decode timestamp from ChangeLog to
      build revision number. It also fixes bug with decoding negative UTC
      offsets.
This commit is contained in:
Przemysław Czerpak
2025-01-23 17:45:49 +01:00
parent 4a4691653b
commit b3ee8c65fb
5 changed files with 137 additions and 43 deletions

View File

@@ -88,7 +88,9 @@ extern HB_EXPORT char * hb_timeStr( char * szTime, long lMilliSec );
extern HB_EXPORT HB_BOOL hb_timeStrGet( const char * szTime,
int * piHour, int * piMinutes,
int * piSeconds, int * piMSec );
extern HB_EXPORT HB_BOOL hb_timeStrGetUTC( const char * szTime,
int * piHour, int * piMinutes, int * piSeconds,
int * piMSec, int * piUTCOffset );
extern HB_EXPORT void hb_timeStrRawGet( const char * szTime,
int * piHour, int * piMinutes,
int * piSeconds, int * piMSec );
@@ -110,9 +112,13 @@ extern HB_EXPORT void hb_timeStampStrRawGet( const char * szDateTime, long * p
extern HB_EXPORT char * hb_timeStampStr( char * szDateTime, long lJulian, long lMilliSec );
extern HB_EXPORT HB_BOOL hb_timeStampStrGet( const char * szDateTime,
int * piYear, int * piMonth, int * piDay,
int * piHour, int * piMinutes, int * piSeconds,
int * piMSec );
int * piYear, int * piMonth, int * piDay,
int * piHour, int * piMinutes, int * piSeconds,
int * piMSec );
extern HB_EXPORT HB_BOOL hb_timeStampStrGetUTC( const char * szDateTime,
int * piYear, int * piMonth, int * piDay,
int * piHour, int * piMinutes, int * piSeconds,
int * piMSec, int * piUTCOffset );
extern HB_EXPORT HB_BOOL hb_timeStampStrGetDT( const char * szDateTime,
long * plJulian, long * plMilliSec );