24#include <tqdatetime.h>
30#include "kcalendarsystemgregorian.h"
32KCalendarSystemGregorian::KCalendarSystemGregorian(
const TDELocale * locale)
37KCalendarSystemGregorian::~KCalendarSystemGregorian()
41int KCalendarSystemGregorian::year(
const TQDate& date)
const
46int KCalendarSystemGregorian::monthsInYear(
const TQDate & date )
const
53int KCalendarSystemGregorian::weeksInYear(
int year)
const
56 temp.setYMD(year, 12, 31);
60 if ( temp.weekNumber() == 1 )
61 temp = temp.addDays(-7);
63 return temp.weekNumber();
66int KCalendarSystemGregorian::weekNumber(
const TQDate& date,
69 return date.weekNumber(yearNum);
72TQString KCalendarSystemGregorian::monthName(
const TQDate& date,
75 return monthName(month(date), year(date), shortName);
78TQString KCalendarSystemGregorian::monthNamePossessive(
const TQDate& date,
bool shortName)
const
80 return monthNamePossessive(month(date), year(date), shortName);
83TQString KCalendarSystemGregorian::monthName(
int month,
int year,
bool shortName)
const
91 return locale()->translate(
"January",
"Jan");
93 return locale()->translate(
"February",
"Feb");
95 return locale()->translate(
"March",
"Mar");
97 return locale()->translate(
"April",
"Apr");
99 return locale()->translate(
"May short",
"May");
101 return locale()->translate(
"June",
"Jun");
103 return locale()->translate(
"July",
"Jul");
105 return locale()->translate(
"August",
"Aug");
107 return locale()->translate(
"September",
"Sep");
109 return locale()->translate(
"October",
"Oct");
111 return locale()->translate(
"November",
"Nov");
113 return locale()->translate(
"December",
"Dec");
119 return locale()->translate(
"January");
121 return locale()->translate(
"February");
123 return locale()->translate(
"March");
125 return locale()->translate(
"April");
127 return locale()->translate(
"May long",
"May");
129 return locale()->translate(
"June");
131 return locale()->translate(
"July");
133 return locale()->translate(
"August");
135 return locale()->translate(
"September");
137 return locale()->translate(
"October");
139 return locale()->translate(
"November");
141 return locale()->translate(
"December");
144 return TQString::null;
147TQString KCalendarSystemGregorian::monthNamePossessive(
int month,
int year,
148 bool shortName)
const
156 return locale()->translate(
"of January",
"of Jan");
158 return locale()->translate(
"of February",
"of Feb");
160 return locale()->translate(
"of March",
"of Mar");
162 return locale()->translate(
"of April",
"of Apr");
164 return locale()->translate(
"of May short",
"of May");
166 return locale()->translate(
"of June",
"of Jun");
168 return locale()->translate(
"of July",
"of Jul");
170 return locale()->translate(
"of August",
"of Aug");
172 return locale()->translate(
"of September",
"of Sep");
174 return locale()->translate(
"of October",
"of Oct");
176 return locale()->translate(
"of November",
"of Nov");
178 return locale()->translate(
"of December",
"of Dec");
184 return locale()->translate(
"of January");
186 return locale()->translate(
"of February");
188 return locale()->translate(
"of March");
190 return locale()->translate(
"of April");
192 return locale()->translate(
"of May long",
"of May");
194 return locale()->translate(
"of June");
196 return locale()->translate(
"of July");
198 return locale()->translate(
"of August");
200 return locale()->translate(
"of September");
202 return locale()->translate(
"of October");
204 return locale()->translate(
"of November");
206 return locale()->translate(
"of December");
209 return TQString::null;
212bool KCalendarSystemGregorian::setYMD(TQDate & date,
int y,
int m,
int d)
const
215 if ( y >= 0 && y <= 99 )
219 return date.setYMD(y, m, d);
222TQDate KCalendarSystemGregorian::addYears(
const TQDate & date,
int nyears)
const
224 return date.addYears(nyears);
227TQDate KCalendarSystemGregorian::addMonths(
const TQDate & date,
int nmonths)
const
229 return date.addMonths(nmonths);
232TQDate KCalendarSystemGregorian::addDays(
const TQDate & date,
int ndays)
const
234 return date.addDays(ndays);
237TQString KCalendarSystemGregorian::weekDayName(
int col,
bool shortName)
const
245TQString KCalendarSystemGregorian::weekDayName(
const TQDate& date,
bool shortName)
const
247 return weekDayName(dayOfWeek(date), shortName);
251int KCalendarSystemGregorian::dayOfWeek(
const TQDate& date)
const
253 return date.dayOfWeek();
256int KCalendarSystemGregorian::dayOfYear(
const TQDate & date)
const
258 return date.dayOfYear();
261int KCalendarSystemGregorian::daysInMonth(
const TQDate& date)
const
263 return date.daysInMonth();
266int KCalendarSystemGregorian::minValidYear()
const
271int KCalendarSystemGregorian::maxValidYear()
const
276int KCalendarSystemGregorian::day(
const TQDate& date)
const
281int KCalendarSystemGregorian::month(
const TQDate& date)
const
286int KCalendarSystemGregorian::daysInYear(
const TQDate& date)
const
288 return date.daysInYear();
291int KCalendarSystemGregorian::weekDayOfPray()
const
296TQString KCalendarSystemGregorian::calendarName()
const
298 return TQString::fromLatin1(
"gregorian");
301bool KCalendarSystemGregorian::isLunar()
const
306bool KCalendarSystemGregorian::isLunisolar()
const
311bool KCalendarSystemGregorian::isSolar()
const
316int KCalendarSystemGregorian::yearStringToInteger(
const TQString & sNum,
int & iLength)
const
325 else if (iYear < 100)
CalendarSystem abstract class, default derived kde gregorian class and factory class.
virtual TQString weekDayName(int weekDay, bool shortName=false) const =0
Gets specific calendar type week day name If an invalid week day is specified, TQString::null is retu...
virtual int yearStringToInteger(const TQString &sNum, int &iLength) const
Converts a year literal of a part of a string into a integer starting at the beginning of the string.
virtual int year(const TQDate &date) const =0
Gets specific calendar type year for a given gregorian date.
TDELocale provides support for country specific stuff like the national language.