Java gets the idea and code for the first day of a certain week in a certain year

  • 2020-04-01 01:32:46
  • OfStack

Direct up code
 
import java.util.Calendar; 
import java.util.Date; 
import org.apache.commons.logging.Log; 
import org.apache.commons.logging.LogFactory; 
 
public class DateUtils { 

private static final Log log = LogFactory.getLog(DateUtils.class); 
 
public static int getWeekOfYear(Date date) { 
Calendar c = Calendar.getInstance(); 
c.setFirstDayOfWeek(Calendar.MONDAY); 
 
c.setMinimalDaysInFirstWeek(1); 
c.setTime(date); 
return c.get(Calendar.WEEK_OF_YEAR); 
} 
 
public static int getMaxWeekNumOfYear(int year) { 
Calendar c = Calendar.getInstance(); 
c.set(year, Calendar.DECEMBER, 31, 23, 59, 59); 
return getWeekOfYear(c.getTime()); 
} 
 
public static Date getFirstDayOfWeek(int year, int week) { 
Calendar c = Calendar.getInstance(); 
c.set(Calendar.YEAR, year); 
c.set(Calendar.WEEK_OF_YEAR, week); 
c.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);//Set up on Monday
c.setFirstDayOfWeek(Calendar.MONDAY); 
return c.getTime(); 
} 

 
public static Date getLastDayOfWeek(int year, int week) { 
Calendar c = Calendar.getInstance(); 
c.set(Calendar.YEAR, year); 
c.set(Calendar.WEEK_OF_YEAR, week); 
c.setFirstDayOfWeek(Calendar.MONDAY); 
c.set(Calendar.DAY_OF_WEEK, c.getFirstDayOfWeek() + 6); // Sunday 

return c.getTime(); 
} 

 
public static Date getFirstDayOfMonth(int year, int month) { 
Calendar c = Calendar.getInstance(); 
c.set(Calendar.YEAR, year); 
c.set(Calendar.MONTH, month-1); 
c.set(Calendar.DAY_OF_MONTH, c.getActualMinimum(Calendar.DAY_OF_MONTH)); 
return c.getTime(); 
} 

 
public static Date getLastDayOfMonth(int year, int month) { 
Calendar c = Calendar.getInstance(); 
c.set(Calendar.YEAR, year); 
c.set(Calendar.MONTH, month-1); 
c.set(Calendar.DAY_OF_MONTH, c.getActualMaximum(Calendar.DAY_OF_MONTH)); 
return c.getTime(); 
} 
 
public static Date getFirstDayOfQuarter(int year, int quarter) { 
int month = 0; 
if (quarter > 4) { 
return null; 
} else { 
month = (quarter - 1) * 3 + 1; 
} 
return getFirstDayOfMonth(year, month); 
} 
 
public static Date getLastDayOfQuarter(int year, int quarter) { 
int month = 0; 
if (quarter > 4) { 
return null; 
} else { 
month = quarter * 3; 
} 
return getLastDayOfMonth(year, month); 
} 
 
public static Date getFirstDayOfYear(int year) { 
return getFirstDayOfQuarter(year,1); 
} 

 
public static Date getLastDayOfYear(int year) { 
return getLastDayOfQuarter(year,4); 
} 

public static void main(String[] args) { 
log.info(getFirstDayOfWeek(2013,1)); 
log.info(getLastDayOfWeek(2013,1)); 

log.info(getFirstDayOfMonth(2013,2)); 
log.info(getLastDayOfMonth(2013,2)); 

log.info(getFirstDayOfQuarter(2013,2)); 
log.info(getLastDayOfQuarter(2013,2)); 

log.info(getFirstDayOfYear(2013)); 
log.info(getLastDayOfYear(2013)); 

} 
} 

Related articles: