ISO8601d: Upgraded method from private to static public

This commit is contained in:
Paul Beckingham 2015-09-27 12:14:18 -04:00
parent 69a60103b9
commit ae22612584
2 changed files with 12 additions and 11 deletions

View file

@ -826,16 +826,6 @@ bool ISO8601d::parse_time_off_ext (Nibbler& n)
return false;
}
////////////////////////////////////////////////////////////////////////////////
// Using Zeller's Congruence.
int ISO8601d::dayOfWeek (int year, int month, int day)
{
int adj = (14 - month) / 12;
int m = month + 12 * adj - 2;
int y = year - adj;
return (day + (13 * m - 1) / 5 + y + y / 4 - y / 100 + y / 400) % 7;
}
////////////////////////////////////////////////////////////////////////////////
// Validation via simple range checking.
bool ISO8601d::validate ()
@ -1483,6 +1473,17 @@ int ISO8601d::dayOfWeek (const std::string& input)
return -1;
}
////////////////////////////////////////////////////////////////////////////////
// Using Zeller's Congruence.
// Static
int ISO8601d::dayOfWeek (int year, int month, int day)
{
int adj = (14 - month) / 12;
int m = month + 12 * adj - 2;
int y = year - adj;
return (day + (13 * m - 1) / 5 + y + y / 4 - y / 100 + y / 400) % 7;
}
////////////////////////////////////////////////////////////////////////////////
// Static
int ISO8601d::monthOfYear (const std::string& input)

View file

@ -69,6 +69,7 @@ public:
static void dayName (int, std::string&);
static std::string dayName (int);
static int dayOfWeek (const std::string&);
static int dayOfWeek (int, int, int);
static int monthOfYear (const std::string&);
static int length (const std::string&);
@ -116,7 +117,6 @@ private:
bool parse_time_ext (Nibbler&);
bool parse_time_utc_ext (Nibbler&);
bool parse_time_off_ext (Nibbler&);
int dayOfWeek (int, int, int);
bool validate ();
void resolve ();
bool isEpoch (const std::string&);