您的位置:首页 > 编程语言 > Java开发

Java中有关日期的操作,昨天晚上赴约,搞到12点多才回来,今天写这一小段代码都花了一段漫长的时间,哎。。

2009-03-30 17:23 801 查看
Java中有关日期的操作,昨天晚上赴约,搞到12点多才回来,今天写这一小段代码都花了一段漫长的时间,哎。。

代码奉上:

/**
*
* @param date
* @return which month is belonged to the param date
* @author Xing,Xiudong
*/
public int getMonthOfDate(Date date) {
Calendar c = Calendar.getInstance();
c.setTime(date);
int year = c.get(Calendar.YEAR);
int month = c.get(Calendar.MONTH);
Date firstDayOfNextMonth = DateTools.getFirstSatudayOfMonth(
month == 11 ? ++year : year, month == 11 ? 0 : ++month);
Date lastDayOfMonth = DateUtils.addDays(firstDayOfNextMonth, -1);
c.setTime(date);
int result = c.get(Calendar.MONTH);
return date.after(lastDayOfMonth) ? ++result : result;
}

/**
*
* @param date
* @return which year is belonged to the param date
* @author Xing,Xiudong
*/
public int getYearOfDate(Date date) {
Calendar c = Calendar.getInstance();
c.setTime(date);
int year = c.get(Calendar.YEAR);
c.set(++year, 1, 1);
Date firstDayOfYear = DateTools.getFirstSatudayOfMonth(c
.get(Calendar.YEAR), 0);
int result = c.get(Calendar.YEAR);
return date.before(firstDayOfYear) ? --result : result;
}


加上以前的代码:

/**
*
* @param date
* @return first day(Satuday) of month
* @author Jin, QingHua
*/
public static Date getFirstSatudayOfMonth(int year, int month) {
Calendar cal = GregorianCalendar.getInstance();
cal.set(year, month, 1);

cal.setFirstDayOfWeek(Calendar.SATURDAY);
cal.set(Calendar.DAY_OF_WEEK, cal.getFirstDayOfWeek());
return cal.getTime();
}

/**
*
* @param date
* @return first day(Satuday) of week
* @author Wu,Yang
*/
public static Date getFirstSatudayOfWeek(Date date) {
Calendar cal = GregorianCalendar.getInstance();
cal.setTime(date);
cal.setFirstDayOfWeek(Calendar.SATURDAY);
cal.set(Calendar.DAY_OF_WEEK, cal.getFirstDayOfWeek());
return cal.getTime();
}

/**
*
* @param date
* @return week count of month of date
* @author Xing,Xiudong
*/
public Integer getWeekCountOfMonth(int year, int month) {
Date first_day_month = DateTools
.getFirstSatudayOfMonth(year, month - 1);

Calendar cal_lastly = Calendar.getInstance();
cal_lastly.set(year, month, 1);
Date firstDayofNextMonth = cal_lastly.getTime();

Integer count = 0;
for (Date first_day_week = first_day_month; first_day_week
.before(firstDayofNextMonth); first_day_week = DateUtils
.addDays(first_day_week, 7)) {
count++;
}

return count;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: