Skip to content

Commit

Permalink
fix a bug when set the calendar.week
Browse files Browse the repository at this point in the history
  • Loading branch information
pshi authored and mwu committed Nov 28, 2011
1 parent ba0b857 commit 7cfb163
Showing 1 changed file with 24 additions and 2 deletions.
Expand Up @@ -66,6 +66,8 @@ public static TimeMember toMember( IDimension timeDimension, Date referenceDate,
}
int[] levelValue = new int[levelType.length];
Calendar cal = getCalendar( referenceDate );
int year_woy = 1;
int year = 1;
for( int i = 0; i < cellTimeMember.getLevelType().length; i++)
{
if( TimeMember.TIME_LEVEL_TYPE_YEAR.equals( cellTimeMember.getLevelType()[i] ) )
Expand Down Expand Up @@ -95,11 +97,31 @@ else if( TimeMember.TIME_LEVEL_TYPE_DAY_OF_YEAR.equals( cellTimeMember.getLevelT
}
else if( TimeMember.TIME_LEVEL_TYPE_WEEK_OF_YEAR.equals( cellTimeMember.getLevelType()[i] ) )
{
cal.set( Calendar.WEEK_OF_YEAR, cellTimeMember.getMemberValue()[i] );
year_woy = cal.get( Calendar.YEAR_WOY );
year = cal.get( Calendar.YEAR );
// year_woy < year, means last week of previous year
// for example. 2011/1/1, the year_woy is 2010
if ( year_woy < year )
{
cal.add( Calendar.DAY_OF_WEEK, 7 );
}
cal.set( Calendar.DAY_OF_WEEK, 1 );
cal.set( Calendar.WEEK_OF_YEAR,
cellTimeMember.getMemberValue( )[i] );
}
else if( TimeMember.TIME_LEVEL_TYPE_WEEK_OF_MONTH.equals( cellTimeMember.getLevelType()[i] ) )
{
cal.set( Calendar.WEEK_OF_MONTH, cellTimeMember.getMemberValue()[i] );
year_woy = cal.get( Calendar.YEAR_WOY );
year = cal.get( Calendar.YEAR );
// year_woy < year, means last week of previous year
// for example. 2011/1/1, the year_woy is 2010
if ( year_woy < year )
{
cal.add( Calendar.DAY_OF_WEEK, 7 );
}
cal.set( Calendar.DAY_OF_WEEK, 1 );
cal.set( Calendar.WEEK_OF_MONTH,
cellTimeMember.getMemberValue( )[i] );
}
}
for( int i = 0; i < levelType.length; i++ )
Expand Down

0 comments on commit 7cfb163

Please sign in to comment.