00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
#include <kglobal.h>
00026
00027
#include "kcalendarsystem.h"
00028
#include "klocale.h"
00029
00030
class KCalendarSystemPrivate
00031 {
00032
public:
00033
const KLocale * locale;
00034 };
00035
00036 KCalendarSystem::KCalendarSystem(
const KLocale * locale)
00037 : d(new KCalendarSystemPrivate)
00038 {
00039 d->locale = locale;
00040 }
00041
00042 KCalendarSystem::~KCalendarSystem()
00043 {
00044
delete d;
00045 }
00046
00047
const KLocale * KCalendarSystem::locale()
const
00048
{
00049
if ( d->locale )
00050
return d->locale;
00051
00052
return KGlobal::locale();
00053 }
00054
00055 QString KCalendarSystem::dayString(
const QDate & pDate,
bool bShort)
const
00056
{
00057
QString sResult;
00058
00059 sResult.setNum(
day(pDate));
00060
if (!bShort && sResult.length() == 1 )
00061 sResult.prepend(
'0');
00062
00063
return sResult;
00064 }
00065
00066 QString KCalendarSystem::monthString(
const QDate & pDate,
bool bShort)
const
00067
{
00068
QString sResult;
00069
00070 sResult.setNum(
month(pDate));
00071
if (!bShort && sResult.length() == 1 )
00072 sResult.prepend(
'0');
00073
00074
return sResult;
00075 }
00076
00077 QString KCalendarSystem::yearString(
const QDate & pDate,
bool bShort)
const
00078
{
00079
QString sResult;
00080
00081 sResult.setNum(
year(pDate));
00082
if (bShort && sResult.length() == 4 )
00083 sResult = sResult.right(2);
00084
00085
return sResult;
00086 }
00087
00088
static int stringToInteger(
const QString & sNum,
int & iLength)
00089 {
00090
unsigned int iPos = 0;
00091
00092
int result = 0;
00093
for (; sNum.length() > iPos && sNum.at(iPos).isDigit(); iPos++)
00094 {
00095 result *= 10;
00096 result += sNum.at(iPos).digitValue();
00097 }
00098
00099 iLength = iPos;
00100
return result;
00101 }
00102
00103
00104 int KCalendarSystem::dayStringToInteger(
const QString & sNum,
int & iLength)
const
00105
{
00106
return stringToInteger(sNum, iLength);
00107 }
00108
00109 int KCalendarSystem::monthStringToInteger(
const QString & sNum,
int & iLength)
const
00110
{
00111
return stringToInteger(sNum, iLength);
00112 }
00113
00114 int KCalendarSystem::yearStringToInteger(
const QString & sNum,
int & iLength)
const
00115
{
00116
return stringToInteger(sNum, iLength);
00117 }
00118
00119 QString KCalendarSystem::weekDayName (
int weekDay,
bool shortName)
const
00120
{
00121
if ( shortName )
00122
switch ( weekDay )
00123 {
00124
case 1:
return locale()->
translate(
"Monday",
"Mon");
00125
case 2:
return locale()->
translate(
"Tuesday",
"Tue");
00126
case 3:
return locale()->
translate(
"Wednesday",
"Wed");
00127
case 4:
return locale()->
translate(
"Thursday",
"Thu");
00128
case 5:
return locale()->
translate(
"Friday",
"Fri");
00129
case 6:
return locale()->
translate(
"Saturday",
"Sat");
00130
case 7:
return locale()->
translate(
"Sunday",
"Sun");
00131 }
00132
else
00133
switch ( weekDay )
00134 {
00135
case 1:
return locale()->
translate(
"Monday");
00136
case 2:
return locale()->
translate(
"Tuesday");
00137
case 3:
return locale()->
translate(
"Wednesday");
00138
case 4:
return locale()->
translate(
"Thursday");
00139
case 5:
return locale()->
translate(
"Friday");
00140
case 6:
return locale()->
translate(
"Saturday");
00141
case 7:
return locale()->
translate(
"Sunday");
00142 }
00143
00144
return QString::null;
00145 }
00146