return days;
}
+String date::MonthName(void)
+{
+ if (month <= 12)
+ {
+ return String(abr_month_name[month]);
+ }
+ else
+ {
+ return String("xxx");
+ }
+}
+
+unsigned date::YearDay(void)
+{
+ unsigned days = 0;
+
+ if (proper())
+ {
+ for (unsigned m = 1; m < month; m++)
+ {
+ days += date(1, m, year).DaysInMonth();
+ }
+ days += day;
+ }
+
+ return days;
+}
+
date date::add(date D)
{
year += D.year;
return s;
}
-String date::MonthName(void)
-{
- if (month <= 12)
- {
- return String(abr_month_name[month]);
- }
- else
- {
- return String("xxx");
- }
-}
-
String date::format(const char *fmt)
{
String s;
int Leap(void);
unsigned DaysInMonth();
+ unsigned YearDay();
+ // TODO:YearDay WeekDay WeekNumber DayName
// date operator*(double)
// date& operator*=(double)
std::cout << d0 << " Leap = " << d0.Leap() << "\n";
assert(d0.Leap() == 0);
+ std::cout << d0 << " YearDay = " << d0.YearDay() << "\n";
+ std::cout.flush();
+ assert(d0.YearDay() == 160);
+
date d1(9, 6, 2020);
std::cout << d1 << " Leap = " << d1.Leap() << "\n";
assert(d1.Leap() == 1);
+ std::cout << d1 << " YearDay = " << d1.YearDay() << "\n";
+ std::cout.flush();
+ assert(d1.YearDay() == 161);
+
date d2(9, 6, 2000);
std::cout << d2 << " Leap = " << d2.Leap() << "\n";
assert(d2.Leap() == 1);
std::cout << d4.MonthName() << " " << d4.Year() << " has " << d4.DaysInMonth() << " days.\n";
assert(d4.DaysInMonth() == 31);
+ std::cout << d4 << " YearDay = " << d4.YearDay() << "\n";
+ std::cout.flush();
+ assert(d4.YearDay() == 1);
+
date d5(1, 2, 2019);
std::cout << d5.MonthName() << " " << d5.Year() << " has " << d5.DaysInMonth() << " days.\n";
assert(d5.DaysInMonth() == 28);
std::cout << d6.MonthName() << " " << d6.Year() << " has " << d6.DaysInMonth() << " days.\n";
assert(d6.DaysInMonth() == 29);
+ std::cout << d6 << " YearDay = " << d6.YearDay() << "\n";
+ std::cout.flush();
+ assert(d6.YearDay() == 32);
+
return 0;
}
09-06-2019 Monthname = Jun
09-06-2019 Year = 2019
09-06-2019 Leap = 0
+09-06-2019 YearDay = 160
09-06-2020 Leap = 1
+09-06-2020 YearDay = 161
09-06-2000 Leap = 1
09-06-2100 Leap = 0
Jan 2019 has 31 days.
+01-01-2019 YearDay = 1
Feb 2019 has 28 days.
Feb 2020 has 29 days.
+01-02-2020 YearDay = 32
PASS date_attributes (exit status: 0)