mirror of
https://github.com/GothenburgBitFactory/taskwarrior.git
synced 2025-06-26 10:54:26 +02:00
ISO8601: Added ::monthOfYear and tests
This commit is contained in:
parent
f26cff9a4a
commit
ff320345e9
3 changed files with 50 additions and 11 deletions
|
@ -827,6 +827,7 @@ int ISO8601d::daysInYear (int year)
|
|||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// Static
|
||||
std::string ISO8601d::monthName (int month)
|
||||
{
|
||||
static const char* months[12] =
|
||||
|
@ -851,6 +852,7 @@ std::string ISO8601d::monthName (int month)
|
|||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// Static
|
||||
void ISO8601d::dayName (int dow, std::string& name)
|
||||
{
|
||||
static const char* days[7] =
|
||||
|
@ -868,6 +870,7 @@ void ISO8601d::dayName (int dow, std::string& name)
|
|||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// Static
|
||||
std::string ISO8601d::dayName (int dow)
|
||||
{
|
||||
static const char* days[7] =
|
||||
|
@ -889,15 +892,38 @@ std::string ISO8601d::dayName (int dow)
|
|||
int ISO8601d::dayOfWeek (const std::string& input)
|
||||
{
|
||||
if (ISO8601d::minimumMatchLength== 0)
|
||||
minimumMatchLength= 3;
|
||||
ISO8601d::minimumMatchLength= 3;
|
||||
|
||||
if (closeEnough (STRING_DATE_SUNDAY, input, minimumMatchLength)) return 0;
|
||||
else if (closeEnough (STRING_DATE_MONDAY, input, minimumMatchLength)) return 1;
|
||||
else if (closeEnough (STRING_DATE_TUESDAY, input, minimumMatchLength)) return 2;
|
||||
else if (closeEnough (STRING_DATE_WEDNESDAY, input, minimumMatchLength)) return 3;
|
||||
else if (closeEnough (STRING_DATE_THURSDAY, input, minimumMatchLength)) return 4;
|
||||
else if (closeEnough (STRING_DATE_FRIDAY, input, minimumMatchLength)) return 5;
|
||||
else if (closeEnough (STRING_DATE_SATURDAY, input, minimumMatchLength)) return 6;
|
||||
if (closeEnough (STRING_DATE_SUNDAY, input, ISO8601d::minimumMatchLength)) return 0;
|
||||
else if (closeEnough (STRING_DATE_MONDAY, input, ISO8601d::minimumMatchLength)) return 1;
|
||||
else if (closeEnough (STRING_DATE_TUESDAY, input, ISO8601d::minimumMatchLength)) return 2;
|
||||
else if (closeEnough (STRING_DATE_WEDNESDAY, input, ISO8601d::minimumMatchLength)) return 3;
|
||||
else if (closeEnough (STRING_DATE_THURSDAY, input, ISO8601d::minimumMatchLength)) return 4;
|
||||
else if (closeEnough (STRING_DATE_FRIDAY, input, ISO8601d::minimumMatchLength)) return 5;
|
||||
else if (closeEnough (STRING_DATE_SATURDAY, input, ISO8601d::minimumMatchLength)) return 6;
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
// Static
|
||||
int ISO8601d::monthOfYear (const std::string& input)
|
||||
{
|
||||
if (ISO8601d::minimumMatchLength== 0)
|
||||
ISO8601d::minimumMatchLength= 3;
|
||||
|
||||
if (closeEnough (STRING_DATE_JANUARY, input, ISO8601d::minimumMatchLength)) return 1;
|
||||
else if (closeEnough (STRING_DATE_FEBRUARY, input, ISO8601d::minimumMatchLength)) return 2;
|
||||
else if (closeEnough (STRING_DATE_MARCH, input, ISO8601d::minimumMatchLength)) return 3;
|
||||
else if (closeEnough (STRING_DATE_APRIL, input, ISO8601d::minimumMatchLength)) return 4;
|
||||
else if (closeEnough (STRING_DATE_MAY, input, ISO8601d::minimumMatchLength)) return 5;
|
||||
else if (closeEnough (STRING_DATE_JUNE, input, ISO8601d::minimumMatchLength)) return 6;
|
||||
else if (closeEnough (STRING_DATE_JULY, input, ISO8601d::minimumMatchLength)) return 7;
|
||||
else if (closeEnough (STRING_DATE_AUGUST, input, ISO8601d::minimumMatchLength)) return 8;
|
||||
else if (closeEnough (STRING_DATE_SEPTEMBER, input, ISO8601d::minimumMatchLength)) return 9;
|
||||
else if (closeEnough (STRING_DATE_OCTOBER, input, ISO8601d::minimumMatchLength)) return 10;
|
||||
else if (closeEnough (STRING_DATE_NOVEMBER, input, ISO8601d::minimumMatchLength)) return 11;
|
||||
else if (closeEnough (STRING_DATE_DECEMBER, input, ISO8601d::minimumMatchLength)) return 12;
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
|
|
@ -50,9 +50,8 @@ public:
|
|||
static std::string monthName (int);
|
||||
static void dayName (int, std::string&);
|
||||
static std::string dayName (int);
|
||||
|
||||
static int dayOfWeek (const std::string&);
|
||||
|
||||
static int monthOfYear (const std::string&);
|
||||
static int length (const std::string&);
|
||||
|
||||
int month () const;
|
||||
|
|
|
@ -71,7 +71,7 @@ void testParse (
|
|||
////////////////////////////////////////////////////////////////////////////////
|
||||
int main (int argc, char** argv)
|
||||
{
|
||||
UnitTest t (815);
|
||||
UnitTest t (827);
|
||||
|
||||
ISO8601d iso;
|
||||
std::string::size_type start = 0;
|
||||
|
@ -246,6 +246,20 @@ int main (int argc, char** argv)
|
|||
t.is (ISO8601d::monthName (11), "November", "11 = November");
|
||||
t.is (ISO8601d::monthName (12), "December", "12 = December");
|
||||
|
||||
// Names.
|
||||
t.is (ISO8601d::monthOfYear ("January"), 1, "January = 1");
|
||||
t.is (ISO8601d::monthOfYear ("February"), 2, "February = 2");
|
||||
t.is (ISO8601d::monthOfYear ("March"), 3, "March = 3");
|
||||
t.is (ISO8601d::monthOfYear ("April"), 4, "April = 4");
|
||||
t.is (ISO8601d::monthOfYear ("May"), 5, "May = 5");
|
||||
t.is (ISO8601d::monthOfYear ("June"), 6, "June = 6");
|
||||
t.is (ISO8601d::monthOfYear ("July"), 7, "July = 7");
|
||||
t.is (ISO8601d::monthOfYear ("August"), 8, "August = 8");
|
||||
t.is (ISO8601d::monthOfYear ("September"), 9, "September = 9");
|
||||
t.is (ISO8601d::monthOfYear ("October"), 10, "October = 10");
|
||||
t.is (ISO8601d::monthOfYear ("November"), 11, "November = 11");
|
||||
t.is (ISO8601d::monthOfYear ("December"), 12, "December = 12");
|
||||
|
||||
t.is (ISO8601d::dayName (0), "Sunday", "0 == Sunday");
|
||||
t.is (ISO8601d::dayName (1), "Monday", "1 == Monday");
|
||||
t.is (ISO8601d::dayName (2), "Tuesday", "2 == Tuesday");
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue