kcalendarsystem.cpp
/*
Copyright (c) 2002 Carlos Moro <cfmoro@correo.uniovi.es>
Copyright (c) 2002 Hans Petter Bieker <bieker@kde.org>
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public
License as published by the Free Software Foundation; either
version 2 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public License
along with this library; see the file COPYING.LIB. If not, write to
the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02110-1301, USA.
*/
// Gregorian calendar system implementation factory for creation of kde calendar
// systems.
// Also default gregorian and factory classes
#include <kglobal.h>
#include "kcalendarsystem.h"
#include "klocale.h"
class KCalendarSystemPrivate
{
public:
const KLocale * locale;
};
KCalendarSystem::KCalendarSystem(const KLocale * locale)
: d(new KCalendarSystemPrivate)
{
d->locale = locale;
}
KCalendarSystem::~KCalendarSystem()
{
delete d;
}
const KLocale * KCalendarSystem::locale() const
{
if ( d->locale )
return d->locale;
return KGlobal::locale();
}
QString KCalendarSystem::dayString(const QDate & pDate, bool bShort) const
{
QString sResult;
sResult.setNum(day(pDate));
if (!bShort && sResult.length() == 1 )
sResult.prepend('0');
return sResult;
}
QString KCalendarSystem::monthString(const QDate & pDate, bool bShort) const
{
QString sResult;
sResult.setNum(month(pDate));
if (!bShort && sResult.length() == 1 )
sResult.prepend('0');
return sResult;
}
QString KCalendarSystem::yearString(const QDate & pDate, bool bShort) const
{
QString sResult;
sResult.setNum(year(pDate));
if (bShort && sResult.length() == 4 )
sResult = sResult.right(2);
return sResult;
}
static int stringToInteger(const QString & sNum, int & iLength)
{
unsigned int iPos = 0;
int result = 0;
for (; sNum.length() > iPos && sNum.at(iPos).isDigit(); iPos++)
{
result *= 10;
result += sNum.at(iPos).digitValue();
}
iLength = iPos;
return result;
}
int KCalendarSystem::dayStringToInteger(const QString & sNum, int & iLength) const
{
return stringToInteger(sNum, iLength);
}
int KCalendarSystem::monthStringToInteger(const QString & sNum, int & iLength) const
{
return stringToInteger(sNum, iLength);
}
int KCalendarSystem::yearStringToInteger(const QString & sNum, int & iLength) const
{
return stringToInteger(sNum, iLength);
}
QString KCalendarSystem::weekDayName (int weekDay, bool shortName) const
{
if ( shortName )
switch ( weekDay )
{
case 1: return locale()->translate("Monday", "Mon");
case 2: return locale()->translate("Tuesday", "Tue");
case 3: return locale()->translate("Wednesday", "Wed");
case 4: return locale()->translate("Thursday", "Thu");
case 5: return locale()->translate("Friday", "Fri");
case 6: return locale()->translate("Saturday", "Sat");
case 7: return locale()->translate("Sunday", "Sun");
}
else
switch ( weekDay )
{
case 1: return locale()->translate("Monday");
case 2: return locale()->translate("Tuesday");
case 3: return locale()->translate("Wednesday");
case 4: return locale()->translate("Thursday");
case 5: return locale()->translate("Friday");
case 6: return locale()->translate("Saturday");
case 7: return locale()->translate("Sunday");
}
return QString::null;
}
KCalendarSystem::month
virtual int month(const QDate &date) const =0
Gets specific calendar type month for a given gregorian date.
KGlobal::locale
static KLocale * locale()
Returns the global locale object.
Definition: kglobal.cpp:88
KLocale::translate
QString translate(const char *index) const
Translates the string into the corresponding string in the national language, if available.
Definition: klocale.cpp:753
KCalendarSystem::weekDayName
virtual QString weekDayName(int weekDay, bool shortName=false) const =0
Gets specific calendar type week day name If an invalid week day is specified, QString::null is retur...
Definition: kcalendarsystem.cpp:119
KCalendarSystem::monthStringToInteger
virtual int monthStringToInteger(const QString &sNum, int &iLength) const
Converts a month literal of a part of a string into a integer starting at the beginning of the string...
Definition: kcalendarsystem.cpp:109
KCalendarSystem::monthString
virtual QString monthString(const QDate &pDate, bool bShort) const
Converts a date into a month literal.
Definition: kcalendarsystem.cpp:66
KCalendarSystem::KCalendarSystem
KCalendarSystem(const KLocale *locale=0)
Constructor of abstract calendar class.
Definition: kcalendarsystem.cpp:36
klocale.h
KCalendarSystem::day
virtual int day(const QDate &date) const =0
Gets specific calendar type day number of month for a given date.
KCalendarSystem::yearString
virtual QString yearString(const QDate &pDate, bool bShort) const
Converts a date into a year literal.
Definition: kcalendarsystem.cpp:77
KCalendarSystem::locale
const KLocale * locale() const
Gets the locale the calendar uses for translations.
Definition: kcalendarsystem.cpp:47
KCalendarSystem::yearStringToInteger
virtual int yearStringToInteger(const QString &sNum, int &iLength) const
Converts a year literal of a part of a string into a integer starting at the beginning of the string...
Definition: kcalendarsystem.cpp:114
KLocale
KLocale provides support for country specific stuff like the national language.
Definition: klocale.h:124
KCalendarSystem::dayString
virtual QString dayString(const QDate &pDate, bool bShort) const
Converts a date into a day literal.
Definition: kcalendarsystem.cpp:55
KCalendarSystem::dayStringToInteger
virtual int dayStringToInteger(const QString &sNum, int &iLength) const
Converts a day literal of a part of a string into a integer starting at the beginning of the string...
Definition: kcalendarsystem.cpp:104
KCalendarSystem::~KCalendarSystem
virtual ~KCalendarSystem()
Descructor.
Definition: kcalendarsystem.cpp:42
KCalendarSystem::year
virtual int year(const QDate &date) const =0
Gets specific calendar type year for a given gregorian date.

KDE Home | KDE Accessibility Home | Description of Access Keys