mirror of
https://github.com/ultimatepp/ultimatepp.git
synced 2026-05-25 22:03:45 -06:00
.Core: ScanTime
git-svn-id: svn://ultimatepp.org/upp/trunk@4583 f0d560ea-af0d-0410-9eb7-867de7ffcac7
This commit is contained in:
parent
cf2218127a
commit
bca73df3da
3 changed files with 42 additions and 23 deletions
|
|
@ -9,11 +9,10 @@ struct Complex : std::complex<double>
|
|||
Complex(double r, double i) : C(r,i) {}
|
||||
Complex(const C& c) : C(c) {}
|
||||
|
||||
Complex(const Nuller&) : C(DOUBLE_NULL) {}
|
||||
Complex(const Nuller&) : C(DOUBLE_NULL, DOUBLE_NULL) {}
|
||||
operator Value() const { return RichValue<Complex>(*this); }
|
||||
Complex(const Value& v) : C(IsNumber(v) ? Complex((double)v) : RichValue<Complex>::Extract(v)) {}
|
||||
|
||||
|
||||
bool operator==(const Complex& c) const { return (const C&)(*this) == (const C&)c; }
|
||||
bool operator!=(const Complex& c) const { return (const C&)(*this) != (const C&)c; }
|
||||
};
|
||||
|
|
|
|||
|
|
@ -26,8 +26,7 @@ int GetDaysOfMonth(int m, int y) {
|
|||
}
|
||||
|
||||
bool Date::IsValid() const {
|
||||
return year == -32768 /* TRC fix 2007/06/17:was == 0 */ || month >= 1 && month <= 12 &&
|
||||
day >= 1 && day <= GetDaysOfMonth(month, year);
|
||||
return year == -32768 || month >= 1 && month <= 12 && day >= 1 && day <= GetDaysOfMonth(month, year);
|
||||
}
|
||||
|
||||
String DayName(int i, int lang)
|
||||
|
|
@ -94,22 +93,6 @@ const char *StrToDate(Date& d, const char *s, Date def)
|
|||
return StrToDate(s_date_scan, d, s, def);
|
||||
}
|
||||
|
||||
Date ScanDate(const char *fmt, const char *s, Date def)
|
||||
{
|
||||
Date d;
|
||||
if(StrToDate(fmt, d, s, def))
|
||||
return d;
|
||||
return def;
|
||||
}
|
||||
|
||||
Date ScanDate(const char *s, Date def)
|
||||
{
|
||||
Date d;
|
||||
if(StrToDate(d, s, def))
|
||||
return d;
|
||||
return def;
|
||||
}
|
||||
|
||||
const char *StrToDate(const char *fmt, Date& d, const char *s, Date def)
|
||||
{
|
||||
if(*s == 0) {
|
||||
|
|
@ -176,6 +159,22 @@ const char *StrToDate(Date& d, const char *s)
|
|||
return StrToDate(d, s, Null);
|
||||
}
|
||||
|
||||
Date ScanDate(const char *fmt, const char *s, Date def)
|
||||
{
|
||||
Date d;
|
||||
if(StrToDate(fmt, d, s, def))
|
||||
return d;
|
||||
return def;
|
||||
}
|
||||
|
||||
Date ScanDate(const char *s, Date def)
|
||||
{
|
||||
Date d;
|
||||
if(StrToDate(d, s, def))
|
||||
return d;
|
||||
return def;
|
||||
}
|
||||
|
||||
static bool s_date_letters = true, s_date_upper = true;
|
||||
static char s_date_seps[64] = "A/\a .-";
|
||||
|
||||
|
|
@ -444,9 +443,9 @@ String Format(Time time, bool seconds)
|
|||
: Format(" %02d:%02d", time.hour, time.minute));
|
||||
}
|
||||
|
||||
const char *StrToTime(Time& d, const char *s)
|
||||
const char *StrToTime(const char *datefmt, Time& d, const char *s)
|
||||
{
|
||||
s = StrToDate(d, s);
|
||||
s = StrToDate(datefmt, d, s);
|
||||
if(!s)
|
||||
return NULL;
|
||||
d.hour = d.minute = d.second = 0;
|
||||
|
|
@ -467,6 +466,26 @@ const char *StrToTime(Time& d, const char *s)
|
|||
return s;
|
||||
}
|
||||
|
||||
const char *StrToTime(Time& d, const char *s)
|
||||
{
|
||||
return StrToTime(s_date_scan, d, s);
|
||||
}
|
||||
|
||||
Time ScanTime(const char *datefmt, const char *s, Time def)
|
||||
{
|
||||
Time tm;
|
||||
if(StrToTime(datefmt, tm, s))
|
||||
return tm;
|
||||
return def;
|
||||
}
|
||||
|
||||
Time ScanDate(const char *s, Time def)
|
||||
{
|
||||
Time tm;
|
||||
if(StrToTime(tm, s))
|
||||
return tm;
|
||||
return def;
|
||||
}
|
||||
|
||||
#ifdef PLATFORM_WIN32
|
||||
|
||||
|
|
|
|||
|
|
@ -141,8 +141,9 @@ Time GetSysTime();
|
|||
Time GetUtcTime();
|
||||
|
||||
String Format(Time time, bool seconds = true);
|
||||
const char *StrToTime(const char *datefmt, Time& d, const char *s);
|
||||
const char *StrToTime(Time& d, const char *s);
|
||||
Time ScanTime(const char *fmt, const char *s, Time def = Null);
|
||||
Time ScanTime(const char *datefmt, const char *s, Time def = Null);
|
||||
Time ScanTime(const char *s, Time def = Null);
|
||||
|
||||
template<>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue