summaryrefslogtreecommitdiff
path: root/tools/source/datetime
diff options
context:
space:
mode:
authorVladimir Glazounov <vg@openoffice.org>2006-04-07 15:11:44 +0000
committerVladimir Glazounov <vg@openoffice.org>2006-04-07 15:11:44 +0000
commitc5b4869386dcbfd0b5cd1fa74a25082236fcdea2 (patch)
tree444b3a1ea59e7d5de16c88283ce9416196551fb4 /tools/source/datetime
parentc20154ec60a09be10115213ad630d7301744d2d3 (diff)
INTEGRATION: CWS internatiodel (1.1.1.1.398); FILE MERGED
2006/01/19 21:11:50 er 1.1.1.1.398.2: RESYNC: (1.1.1.1-1.2); FILE MERGED 2005/06/24 13:03:06 er 1.1.1.1.398.1: #i50205# get rid of class International (remove WeekCountStart)
Diffstat (limited to 'tools/source/datetime')
-rw-r--r--tools/source/datetime/tdate.cxx28
1 files changed, 17 insertions, 11 deletions
diff --git a/tools/source/datetime/tdate.cxx b/tools/source/datetime/tdate.cxx
index cafa28f3ed97..f7a41a794705 100644
--- a/tools/source/datetime/tdate.cxx
+++ b/tools/source/datetime/tdate.cxx
@@ -4,9 +4,9 @@
*
* $RCSfile: tdate.cxx,v $
*
- * $Revision: 1.2 $
+ * $Revision: 1.3 $
*
- * last change: $Author: rt $ $Date: 2005-09-09 14:11:11 $
+ * last change: $Author: vg $ $Date: 2006-04-07 16:11:44 $
*
* The Contents of this file are made available subject to
* the terms of GNU Lesser General Public License Version 2.1.
@@ -256,7 +256,7 @@ USHORT Date::GetDayOfYear() const
// -----------------------------------------------------------------------
USHORT Date::GetWeekOfYear( DayOfWeek eStartDay,
- WeekCountStart eWeekStart ) const
+ sal_Int16 nMinimumNumberOfDaysInWeek ) const
{
short nWeek;
short n1WDay = (short)Date( 1, 1, GetYear() ).GetDayOfWeek();
@@ -267,7 +267,13 @@ USHORT Date::GetWeekOfYear( DayOfWeek eStartDay,
// StartDay beruecksichtigen
n1WDay = (n1WDay+(7-(short)eStartDay)) % 7;
- if ( eWeekStart == WEEKCOUNT_FIRSTDAY )
+ if (nMinimumNumberOfDaysInWeek < 1 || 7 < nMinimumNumberOfDaysInWeek)
+ {
+ DBG_ERRORFILE("Date::GetWeekOfYear: invalid nMinimumNumberOfDaysInWeek");
+ nMinimumNumberOfDaysInWeek = 4;
+ }
+
+ if ( nMinimumNumberOfDaysInWeek == 1 )
{
nWeek = ((n1WDay+nDayOfYear)/7) + 1;
// 53te-Woche nur dann, wenn wir nicht schon in der ersten
@@ -283,7 +289,7 @@ USHORT Date::GetWeekOfYear( DayOfWeek eStartDay,
nWeek = 1;
}
}
- else if ( eWeekStart == WEEKCOUNT_FIRSTFULLWEEK )
+ else if ( nMinimumNumberOfDaysInWeek == 7 )
{
nWeek = ((n1WDay+nDayOfYear)/7);
// Erste Woche eines Jahres entspricht der letzen Woche des
@@ -291,19 +297,19 @@ USHORT Date::GetWeekOfYear( DayOfWeek eStartDay,
if ( nWeek == 0 )
{
Date aLastDatePrevYear( 31, 12, GetYear()-1 );
- nWeek = aLastDatePrevYear.GetWeekOfYear( eStartDay, eWeekStart );
+ nWeek = aLastDatePrevYear.GetWeekOfYear( eStartDay, nMinimumNumberOfDaysInWeek );
}
}
- else // ( eWeekStart == WEEKCOUNT_FIRST4DAYWEEK )
+ else // ( nMinimumNumberOfDaysInWeek == somehing_else, commentary examples for 4 )
{
// x_monday - thursday
- if ( n1WDay < 4 )
+ if ( n1WDay < nMinimumNumberOfDaysInWeek )
nWeek = 1;
// friday
- else if ( n1WDay == 4 )
+ else if ( n1WDay == nMinimumNumberOfDaysInWeek )
nWeek = 53;
// saturday
- else if ( n1WDay == 5 )
+ else if ( n1WDay == nMinimumNumberOfDaysInWeek + 1 )
{
// Jahr nach Schaltjahr
if ( Date( 1, 1, GetYear()-1 ).IsLeapYear() )
@@ -331,7 +337,7 @@ USHORT Date::GetWeekOfYear( DayOfWeek eStartDay,
USHORT nMonth;
USHORT nYear;
DaysToDate( nTempDays, nDay, nMonth, nYear );
- nWeek = Date( nDay, nMonth, nYear ).GetWeekOfYear( eStartDay, eWeekStart );
+ nWeek = Date( nDay, nMonth, nYear ).GetWeekOfYear( eStartDay, nMinimumNumberOfDaysInWeek );
}
}
}