Geant4 Cross Reference

Cross-Referencing   Geant4
Geant4/externals/g4tools/include/tools/wroot/date

Version: [ ReleaseNotes ] [ 1.0 ] [ 1.1 ] [ 2.0 ] [ 3.0 ] [ 3.1 ] [ 3.2 ] [ 4.0 ] [ 4.0.p1 ] [ 4.0.p2 ] [ 4.1 ] [ 4.1.p1 ] [ 5.0 ] [ 5.0.p1 ] [ 5.1 ] [ 5.1.p1 ] [ 5.2 ] [ 5.2.p1 ] [ 5.2.p2 ] [ 6.0 ] [ 6.0.p1 ] [ 6.1 ] [ 6.2 ] [ 6.2.p1 ] [ 6.2.p2 ] [ 7.0 ] [ 7.0.p1 ] [ 7.1 ] [ 7.1.p1 ] [ 8.0 ] [ 8.0.p1 ] [ 8.1 ] [ 8.1.p1 ] [ 8.1.p2 ] [ 8.2 ] [ 8.2.p1 ] [ 8.3 ] [ 8.3.p1 ] [ 8.3.p2 ] [ 9.0 ] [ 9.0.p1 ] [ 9.0.p2 ] [ 9.1 ] [ 9.1.p1 ] [ 9.1.p2 ] [ 9.1.p3 ] [ 9.2 ] [ 9.2.p1 ] [ 9.2.p2 ] [ 9.2.p3 ] [ 9.2.p4 ] [ 9.3 ] [ 9.3.p1 ] [ 9.3.p2 ] [ 9.4 ] [ 9.4.p1 ] [ 9.4.p2 ] [ 9.4.p3 ] [ 9.4.p4 ] [ 9.5 ] [ 9.5.p1 ] [ 9.5.p2 ] [ 9.6 ] [ 9.6.p1 ] [ 9.6.p2 ] [ 9.6.p3 ] [ 9.6.p4 ] [ 10.0 ] [ 10.0.p1 ] [ 10.0.p2 ] [ 10.0.p3 ] [ 10.0.p4 ] [ 10.1 ] [ 10.1.p1 ] [ 10.1.p2 ] [ 10.1.p3 ] [ 10.2 ] [ 10.2.p1 ] [ 10.2.p2 ] [ 10.2.p3 ] [ 10.3 ] [ 10.3.p1 ] [ 10.3.p2 ] [ 10.3.p3 ] [ 10.4 ] [ 10.4.p1 ] [ 10.4.p2 ] [ 10.4.p3 ] [ 10.5 ] [ 10.5.p1 ] [ 10.6 ] [ 10.6.p1 ] [ 10.6.p2 ] [ 10.6.p3 ] [ 10.7 ] [ 10.7.p1 ] [ 10.7.p2 ] [ 10.7.p3 ] [ 10.7.p4 ] [ 11.0 ] [ 11.0.p1 ] [ 11.0.p2 ] [ 11.0.p3, ] [ 11.0.p4 ] [ 11.1 ] [ 11.1.1 ] [ 11.1.2 ] [ 11.1.3 ] [ 11.2 ] [ 11.2.1 ] [ 11.2.2 ] [ 11.3.0 ]

Diff markup

Differences between /externals/g4tools/include/tools/wroot/date (Version 11.3.0) and /externals/g4tools/include/tools/wroot/date (Version 11.1.1)


  1 // Copyright (C) 2010, Guy Barrand. All rights      1 // Copyright (C) 2010, Guy Barrand. All rights reserved.
  2 // See the file tools.license for terms.            2 // See the file tools.license for terms.
  3                                                     3 
  4 #ifndef tools_wroot_date                            4 #ifndef tools_wroot_date
  5 #define tools_wroot_date                            5 #define tools_wroot_date
  6                                                     6 
  7 //_MSC_VER (= Microsoft VisualC++) :                7 //_MSC_VER (= Microsoft VisualC++) :
  8 //  localtime_r() does not exist on Windows an      8 //  localtime_r() does not exist on Windows and we can't use the
  9 //  Windows ::GetLocalTime() since G4 do not w      9 //  Windows ::GetLocalTime() since G4 do not want to include windows.h.
 10 //  Then we stay with the not thread safe loca     10 //  Then we stay with the not thread safe localtime().
 11                                                    11 
 12 #include <time.h>                                  12 #include <time.h>
 13                                                    13 
 14 namespace tools {                                  14 namespace tools {
 15 namespace wroot {                                  15 namespace wroot {
 16                                                    16 
 17 typedef unsigned int date;                         17 typedef unsigned int date;
 18                                                    18 
 19 inline date get_date(){                            19 inline date get_date(){
 20   // Set Date/Time to current time as reported     20   // Set Date/Time to current time as reported by the system.
 21   // Date and Time are encoded into one single     21   // Date and Time are encoded into one single unsigned 32 bit word.
 22   // Date is stored with the origin being the      22   // Date is stored with the origin being the 1st january 1995.
 23   // Time has 1 second precision.                  23   // Time has 1 second precision.
 24   time_t tloc = ::time(0);                         24   time_t tloc = ::time(0);
 25 #if defined(_MSC_VER) || defined(__MINGW32__)      25 #if defined(_MSC_VER) || defined(__MINGW32__)
 26   struct tm *tp = (tm*)::localtime(&tloc); //n     26   struct tm *tp = (tm*)::localtime(&tloc); //not thread safe (but exist on Windows).
 27 #else                                              27 #else
 28   struct tm tpa;                                   28   struct tm tpa;
 29   struct tm *tp = (tm*)::localtime_r(&tloc, &t     29   struct tm *tp = (tm*)::localtime_r(&tloc, &tpa); //does not exist on Windows.
 30 #endif                                             30 #endif
 31   unsigned int _year   = tp->tm_year;              31   unsigned int _year   = tp->tm_year;
 32   unsigned int _month  = tp->tm_mon + 1;           32   unsigned int _month  = tp->tm_mon + 1;
 33   unsigned int _day    = tp->tm_mday;              33   unsigned int _day    = tp->tm_mday;
 34   unsigned int _hour   = tp->tm_hour;              34   unsigned int _hour   = tp->tm_hour;
 35   unsigned int _min    = tp->tm_min;               35   unsigned int _min    = tp->tm_min;
 36   unsigned int _sec    = tp->tm_sec;               36   unsigned int _sec    = tp->tm_sec;
 37   return ((_year-95)<<26 | _month<<22 | _day<<     37   return ((_year-95)<<26 | _month<<22 | _day<<17 | _hour<<12 | _min<<6 | _sec);
 38 }                                                  38 }
 39                                                    39 
 40 }}                                                 40 }}
 41                                                    41 
 42 #endif                                             42 #endif