Enhancements - date
- Relocated valid.cpp/dataValid to Date::valid. - Added new unit tests in date.t.cpp.
This commit is contained in:
16
src/Date.cpp
16
src/Date.cpp
@@ -254,6 +254,22 @@ const std::string Date::toString (const std::string& format /*= "m/d/Y" */) cons
|
|||||||
return formatted;
|
return formatted;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
|
bool Date::valid (const std::string& input, const std::string& format)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
Date test (input, format);
|
||||||
|
}
|
||||||
|
|
||||||
|
catch (...)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
bool Date::valid (const int m, const int d, const int y)
|
bool Date::valid (const int m, const int d, const int y)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -46,6 +46,7 @@ public:
|
|||||||
time_t toEpoch ();
|
time_t toEpoch ();
|
||||||
void toMDY (int&, int&, int&);
|
void toMDY (int&, int&, int&);
|
||||||
const std::string toString (const std::string& format = "m/d/Y") const;
|
const std::string toString (const std::string& format = "m/d/Y") const;
|
||||||
|
static bool valid (const std::string&, const std::string& format = "m/d/Y");
|
||||||
static bool valid (const int, const int, const int);
|
static bool valid (const int, const int, const int);
|
||||||
|
|
||||||
static bool leapYear (int);
|
static bool leapYear (int);
|
||||||
|
|||||||
@@ -39,7 +39,6 @@
|
|||||||
// valid.cpp
|
// valid.cpp
|
||||||
void guess (const std::string&, const char**, std::string&);
|
void guess (const std::string&, const char**, std::string&);
|
||||||
bool validPriority (const std::string&);
|
bool validPriority (const std::string&);
|
||||||
bool validDate (std::string&);
|
|
||||||
bool validDescription (const std::string&);
|
bool validDescription (const std::string&);
|
||||||
bool validDuration (std::string&);
|
bool validDuration (std::string&);
|
||||||
void validReportColumns (const std::vector <std::string>&);
|
void validReportColumns (const std::vector <std::string>&);
|
||||||
|
|||||||
@@ -34,7 +34,7 @@ Context context;
|
|||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
int main (int argc, char** argv)
|
int main (int argc, char** argv)
|
||||||
{
|
{
|
||||||
UnitTest t (100);
|
UnitTest t (102);
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
@@ -75,6 +75,9 @@ int main (int argc, char** argv)
|
|||||||
t.ok (Date::valid (2, 29, 2008), "valid: 2/29/2008");
|
t.ok (Date::valid (2, 29, 2008), "valid: 2/29/2008");
|
||||||
t.notok (Date::valid (2, 29, 2007), "invalid: 2/29/2007");
|
t.notok (Date::valid (2, 29, 2007), "invalid: 2/29/2007");
|
||||||
|
|
||||||
|
t.ok (Date::valid ("2/29/2008"), "valid: 2/29/2008");
|
||||||
|
t.notok (Date::valid ("2/29/2007"), "invalid: 2/29/2007");
|
||||||
|
|
||||||
// Leap year.
|
// Leap year.
|
||||||
t.ok (Date::leapYear (2008), "2008 is a leap year");
|
t.ok (Date::leapYear (2008), "2008 is a leap year");
|
||||||
t.notok (Date::leapYear (2007), "2007 is not a leap year");
|
t.notok (Date::leapYear (2007), "2007 is not a leap year");
|
||||||
|
|||||||
@@ -152,18 +152,6 @@ void guess (
|
|||||||
guess (type, options, candidate);
|
guess (type, options, candidate);
|
||||||
}
|
}
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
|
||||||
bool validDate (std::string& date)
|
|
||||||
{
|
|
||||||
Date test (date, context.config.get ("dateformat", "m/d/Y"));
|
|
||||||
|
|
||||||
char epoch[16];
|
|
||||||
sprintf (epoch, "%d", (int) test.toEpoch ());
|
|
||||||
date = epoch;
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
bool validPriority (const std::string& input)
|
bool validPriority (const std::string& input)
|
||||||
{
|
{
|
||||||
@@ -207,10 +195,10 @@ bool validAttribute (std::string& name, std::string& value)
|
|||||||
guess ("color", colors, value);
|
guess ("color", colors, value);
|
||||||
|
|
||||||
else if (name == "due" && value != "")
|
else if (name == "due" && value != "")
|
||||||
validDate (value);
|
Date (value);
|
||||||
|
|
||||||
else if (name == "until" && value != "")
|
else if (name == "until" && value != "")
|
||||||
validDate (value);
|
Date (value);
|
||||||
|
|
||||||
else if (name == "priority")
|
else if (name == "priority")
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user