// in the fine tradition of ANSI C we use our equivalent of (time_t)-1 to
// indicate an invalid wxDateTime object
-#ifdef __WIN16__
+
static const wxDateTime gs_dtDefault;
-#else
-static const wxDateTime gs_dtDefault = wxLongLong((long)ULONG_MAX, ULONG_MAX);
-#endif
const wxDateTime& wxDefaultDateTime = gs_dtDefault;
// the values in the tm structure contain the local time
wxDateTime& wxDateTime::Set(const struct tm& tm)
{
- wxASSERT_MSG( IsValid(), _T("invalid wxDateTime") );
-
struct tm tm2(tm);
time_t timet = mktime(&tm2);
wxDateTime_t second,
wxDateTime_t millisec)
{
- wxASSERT_MSG( IsValid(), _T("invalid wxDateTime") );
-
// we allow seconds to be 61 to account for the leap seconds, even if we
// don't use them really
wxDATETIME_CHECK( hour < 24 &&
wxDateTime_t second,
wxDateTime_t millisec)
{
- wxASSERT_MSG( IsValid(), _T("invalid wxDateTime") );
-
wxDATETIME_CHECK( hour < 24 &&
second < 62 &&
minute < 60 &&
// take this date as default
tmDef = dateDef.GetTm();
}
-#ifdef __WIN16__
- else if ( m_time != 0 )
-#else
- else if ( m_time != wxLongLong(0) )
-#endif
+ else if ( IsValid() )
{
// if this date is valid, don't change it
tmDef = GetTm();
// wxTimeSpan
// ============================================================================
+// this enum is only used in wxTimeSpan::Format() below but we can't declare
+// it locally to the method as it provokes an internal compiler error in egcs
+// 2.91.60 when building with -O2
+enum TimeSpanPart
+{
+ Part_Week,
+ Part_Day,
+ Part_Hour,
+ Part_Min,
+ Part_Sec,
+ Part_MSec
+};
+
// not all strftime(3) format specifiers make sense here because, for example,
// a time span doesn't have a year nor a timezone
//
// should use GetMinutes() % 60, otherwise just GetMinutes() &c
// we remember the most important unit found so far
- enum TimeSpanPart
- {
- Part_Week,
- Part_Day,
- Part_Hour,
- Part_Min,
- Part_Sec,
- Part_MSec
- } partBiggest = Part_MSec;
+ TimeSpanPart partBiggest = Part_MSec;
for ( const wxChar *pch = format; *pch; pch++ )
{