mirror of
https://github.com/GothenburgBitFactory/taskwarrior.git
synced 2025-06-26 10:54:26 +02:00
Date Support
- Added Date::week helper method.
This commit is contained in:
parent
6555811ca5
commit
3a8a513d17
3 changed files with 24 additions and 1 deletions
16
src/Date.cpp
16
src/Date.cpp
|
@ -585,6 +585,12 @@ int Date::month () const
|
||||||
return t->tm_mon + 1;
|
return t->tm_mon + 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
|
int Date::week () const
|
||||||
|
{
|
||||||
|
return Date::weekOfYear (Date::dayOfWeek (context.config.get ("weekstart")));
|
||||||
|
}
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
int Date::day () const
|
int Date::day () const
|
||||||
{
|
{
|
||||||
|
@ -679,6 +685,16 @@ bool Date::sameDay (const Date& rhs) const
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
|
bool Date::sameWeek (const Date& rhs) const
|
||||||
|
{
|
||||||
|
if (this->year () == rhs.year () &&
|
||||||
|
this->week () == rhs.week ())
|
||||||
|
return true;
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
bool Date::sameMonth (const Date& rhs) const
|
bool Date::sameMonth (const Date& rhs) const
|
||||||
{
|
{
|
||||||
|
|
|
@ -76,6 +76,7 @@ public:
|
||||||
static int length (const std::string&);
|
static int length (const std::string&);
|
||||||
|
|
||||||
int month () const;
|
int month () const;
|
||||||
|
int week () const;
|
||||||
int day () const;
|
int day () const;
|
||||||
int year () const;
|
int year () const;
|
||||||
int weekOfYear (int) const;
|
int weekOfYear (int) const;
|
||||||
|
@ -93,6 +94,7 @@ public:
|
||||||
bool operator>= (const Date&) const;
|
bool operator>= (const Date&) const;
|
||||||
bool sameHour (const Date&) const;
|
bool sameHour (const Date&) const;
|
||||||
bool sameDay (const Date&) const;
|
bool sameDay (const Date&) const;
|
||||||
|
bool sameWeek (const Date&) const;
|
||||||
bool sameMonth (const Date&) const;
|
bool sameMonth (const Date&) const;
|
||||||
bool sameYear (const Date&) const;
|
bool sameYear (const Date&) const;
|
||||||
|
|
||||||
|
|
|
@ -36,7 +36,7 @@ Context context;
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
int main (int argc, char** argv)
|
int main (int argc, char** argv)
|
||||||
{
|
{
|
||||||
UnitTest t (205);
|
UnitTest t (209);
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
@ -61,9 +61,11 @@ int main (int argc, char** argv)
|
||||||
t.ok (now < tomorrow, "now < tomorrow");
|
t.ok (now < tomorrow, "now < tomorrow");
|
||||||
|
|
||||||
// Date::Date ("now")
|
// Date::Date ("now")
|
||||||
|
context.config.set ("weekstart", "monday");
|
||||||
Date relative_now ("now");
|
Date relative_now ("now");
|
||||||
t.ok (relative_now.sameHour (now), "Date ().sameHour (Date (now))");
|
t.ok (relative_now.sameHour (now), "Date ().sameHour (Date (now))");
|
||||||
t.ok (relative_now.sameDay (now), "Date ().sameDay (Date (now))");
|
t.ok (relative_now.sameDay (now), "Date ().sameDay (Date (now))");
|
||||||
|
t.ok (relative_now.sameWeek (now), "Date ().sameWeek (Date (now))");
|
||||||
t.ok (relative_now.sameMonth (now), "Date ().sameMonth (Date (now))");
|
t.ok (relative_now.sameMonth (now), "Date ().sameMonth (Date (now))");
|
||||||
t.ok (relative_now.sameYear (now), "Date ().sameYear (Date (now))");
|
t.ok (relative_now.sameYear (now), "Date ().sameYear (Date (now))");
|
||||||
|
|
||||||
|
@ -71,6 +73,7 @@ int main (int argc, char** argv)
|
||||||
Date left ("7/4/2008");
|
Date left ("7/4/2008");
|
||||||
Date comp1 ("7/4/2008");
|
Date comp1 ("7/4/2008");
|
||||||
t.ok (left.sameDay (comp1), "7/4/2008 is on the same day as 7/4/2008");
|
t.ok (left.sameDay (comp1), "7/4/2008 is on the same day as 7/4/2008");
|
||||||
|
t.ok (left.sameWeek (comp1), "7/4/2008 is on the same week as 7/4/2008");
|
||||||
t.ok (left.sameMonth (comp1), "7/4/2008 is in the same month as 7/4/2008");
|
t.ok (left.sameMonth (comp1), "7/4/2008 is in the same month as 7/4/2008");
|
||||||
t.ok (left.sameYear (comp1), "7/4/2008 is in the same year as 7/4/2008");
|
t.ok (left.sameYear (comp1), "7/4/2008 is in the same year as 7/4/2008");
|
||||||
|
|
||||||
|
@ -81,11 +84,13 @@ int main (int argc, char** argv)
|
||||||
|
|
||||||
Date comp3 ("8/4/2008");
|
Date comp3 ("8/4/2008");
|
||||||
t.notok (left.sameDay (comp3), "7/4/2008 is not on the same day as 8/4/2008");
|
t.notok (left.sameDay (comp3), "7/4/2008 is not on the same day as 8/4/2008");
|
||||||
|
t.notok (left.sameWeek (comp3), "7/4/2008 is not on the same week as 8/4/2008");
|
||||||
t.notok (left.sameMonth (comp3), "7/4/2008 is not in the same month as 8/4/2008");
|
t.notok (left.sameMonth (comp3), "7/4/2008 is not in the same month as 8/4/2008");
|
||||||
t.ok (left.sameYear (comp3), "7/4/2008 is in the same year as 8/4/2008");
|
t.ok (left.sameYear (comp3), "7/4/2008 is in the same year as 8/4/2008");
|
||||||
|
|
||||||
Date comp4 ("7/4/2009");
|
Date comp4 ("7/4/2009");
|
||||||
t.notok (left.sameDay (comp4), "7/4/2008 is not on the same day as 7/4/2009");
|
t.notok (left.sameDay (comp4), "7/4/2008 is not on the same day as 7/4/2009");
|
||||||
|
t.notok (left.sameWeek (comp3), "7/4/2008 is not on the same week as 7/4/2009");
|
||||||
t.notok (left.sameMonth (comp4), "7/4/2008 is not in the same month as 7/4/2009");
|
t.notok (left.sameMonth (comp4), "7/4/2008 is not in the same month as 7/4/2009");
|
||||||
t.notok (left.sameYear (comp4), "7/4/2008 is not in the same year as 7/4/2009");
|
t.notok (left.sameYear (comp4), "7/4/2008 is not in the same year as 7/4/2009");
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue