Import java. text. SimpleDateFormat;
Import java. util. Calendar;
Import java. util. Date;
Import java. util. GregorianCalendar;
Public class WeekOfYear {
/**
* @ Param args
*/
Public static void main (String [] args ){
SimpleDateFormat sdf = new SimpleDateFormat ("yyyy-MM-dd, ww, E ");
// Sdf. format ("2009-12-31 ");
Calendar cl = Calendar. getInstance ();
Cl. setFirstDayOfWeek (GregorianCalendar. SUNDAY); // It starts on SUNDAY every week.
Cl. setminimaldaysinfirstweek (3); // the first week of each year must be greater than or equal to three days.
Cl. Set (2009, 11, 26); // the number of weeks obtained using simpledateformat is incorrect. Get (calendar. week_of_year) is correct.
System. out. println (SDF. format (Cl. gettime () + "/t" + Cl. get (calendar. week_of_year) + "/t" + getweekofyear (CL ));
Cl. Set (2009, 11, 27 );
System. out. println (SDF. format (Cl. gettime () + "/t" + Cl. get (calendar. week_of_year) + "/t" + getweekofyear (CL ));
Cl. Set (2010, 0, 1 );
System. out. println (sdf. format (cl. getTime () + "/t" + cl. get (Calendar. WEEK_OF_YEAR) + "/t" + getWeekOfYear (cl ));
Cl. set (2011, 0, 2 );
System. out. println (sdf. format (cl. getTime () + "/t" + cl. get (Calendar. WEEK_OF_YEAR) + "/t" + getWeekOfYear (cl ));
}
// But the week of the previous date belongs to the previous year or the next year. 13017614465
Public static int getWeekOfYear (Calendar cl ){
If (cl. get (Calendar. MONTH) = Calendar. JANUARY & cl. get (Calendar. WEEK_OF_YEAR)> 50 ){
Return cl. get (Calendar. YEAR)-1;
} Else {
Return cl. get (Calendar. YEAR );
}
}
}