mirror of
https://github.com/GothenburgBitFactory/taskwarrior.git
synced 2025-06-26 10:54:26 +02:00
Date
- Implemented Date::dayOfYear which yields a number, 1 to 366.
This commit is contained in:
parent
b4be5991b8
commit
27752bd510
3 changed files with 15 additions and 2 deletions
|
@ -100,7 +100,7 @@ Date::Date (const std::string& input, const std::string& format /* = "m/d/Y" */)
|
|||
|
||||
unsigned int i = 0; // Index into input.
|
||||
|
||||
// Format may include: mMdDyYVaAbBhHNS
|
||||
// Format may include: mMdDyYVaAbBhHNSjJ
|
||||
//
|
||||
// Note that the format should never include T or Z, as that interferes with
|
||||
// the potential parsing for ISO dates constructed from the above format.
|
||||
|
@ -666,6 +666,13 @@ int Date::dayOfWeek (const std::string& input)
|
|||
return -1;
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
int Date::dayOfYear () const
|
||||
{
|
||||
struct tm* t = localtime (&mT);
|
||||
return t->tm_yday + 1;
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
int Date::monthOfYear (const std::string& input)
|
||||
{
|
||||
|
|
|
@ -75,6 +75,7 @@ public:
|
|||
int year () const;
|
||||
int weekOfYear (int) const;
|
||||
int dayOfWeek () const;
|
||||
int dayOfYear () const;
|
||||
int hour () const;
|
||||
int minute () const;
|
||||
int second () const;
|
||||
|
|
|
@ -34,7 +34,7 @@ Context context;
|
|||
////////////////////////////////////////////////////////////////////////////////
|
||||
int main (int argc, char** argv)
|
||||
{
|
||||
UnitTest t (165);
|
||||
UnitTest t (168);
|
||||
|
||||
try
|
||||
{
|
||||
|
@ -242,6 +242,11 @@ int main (int argc, char** argv)
|
|||
t.is (fromString13.minute (), 34, "ctor (std::string) -> N");
|
||||
t.is (fromString13.second (), 56, "ctor (std::string) -> S");
|
||||
|
||||
// Day of year
|
||||
t.is (Date ("1/1/2011", "m/d/Y").dayOfYear (), 1, "dayOfYear (1/1/2011) -> 1");
|
||||
t.is (Date ("5/1/2011", "m/d/Y").dayOfYear (), 121, "dayOfYear (5/1/2011) -> 121");
|
||||
t.is (Date ("12/31/2011", "m/d/Y").dayOfYear (), 365, "dayOfYear (12/31/2011) -> 365");
|
||||
|
||||
// Easter
|
||||
Date e1 (Date::easter(1980));
|
||||
t.is (e1.toString (), "4/6/1980", "Easter 4/6/1980");
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue