/**
* java日期操作(月末、周末等的日期操作)
*
* @author
*
*/
public class DateUtil {
/** */
/**
* 取得某天相加(减)後的那一天
*
* @param date
* @param num
* (可正可负)
* @return
*/
public static Date getAnotherDate(Date date, int num) {
Calendar c = Calendar.getInstance();
c.setTime(date);
c.add(Calendar.DAY_OF_YEAR, num);
return c.getTime();
}
/** */
/**
* 取得某月的的最后一天
*
* @param year
* @param month
* @return
*/
public static Date getLastDayOfMonth(int year, int month) {
Calendar cal = Calendar.getInstance();
cal.set(Calendar.YEAR, year);// 年
cal.set(Calendar.MONTH, month - 1);// 月,因为Calendar里的月是从0开始,所以要减1
cal.set(Calendar.DATE, 1);// 日,设为一号
cal.add(Calendar.MONTH, 1);// 月份加一,得到下个月的一号
cal.add(Calendar.DATE, -1);// 下一个月减一为本月最后一天
return cal.getTime();// 获得月末是几号
}
/** */
/**
* 取得某天是一年中的多少周
*
* @param date
* @return
*/
public static int getWeekOfYear(Date date) {
Calendar c = new GregorianCalendar();
c.setFirstDayOfWeek(Calendar.MONDAY);
c.setMinimalDaysInFirstWeek(7);
c.setTime(date);
return c.get(Calendar.WEEK_OF_YEAR);
}
/** */
/**
* 取得某天所在周的第一天
*
* @param date
* @return
*/
public static Date getFirstDayOfWeek(Date date) {
Calendar c = new GregorianCalendar();
c.setFirstDayOfWeek(Calendar.MONDAY);
c.setTime(date);
c.set(Calendar.DAY_OF_WEEK, c.getFirstDayOfWeek());
return c.getTime();
}
/** */
/**
* 取得某天所在周的最后一天
*
* @param date
* @return
*/
public static Date getLastDayOfWeek(Date date) {
Calendar c = new GregorianCalendar();
c.setFirstDayOfWeek(Calendar.MONDAY);
c.setTime(date);
c.set(Calendar.DAY_OF_WEEK, c.getFirstDayOfWeek() + 6);
return c.getTime();
}
/** */
/**
* 取得某一年共有多少周
*
* @param year
* @return
*/
public static int getMaxWeekNumOfYear(int year) {
Calendar c = new GregorianCalendar();
c.set(year, Calendar.DECEMBER, 31, 23, 59, 59);
return getWeekOfYear(c.getTime());
}
/**
*
* 获取某一年某一周的日期
* @description
* @param year
* @param week
* @return
*/
public static List<String> getWeekDays(int year,int week){
List<String> list = new ArrayList<String>();
Date date = getFirstDayOfWeek(year,week);
SimpleDateFormat d = new SimpleDateFormat("yyyy-MM-dd");
for (int i = 0; i < 7; i++) {
list.add(d.format(date));
System.out.println(d.format(date));
date.setDate(date.getDate()+1);
}
return list;
}
/** */
/**
* 取得某年某周的第一天 对于交叉:2008-12-29到2009-01-04属于2008年的最后一周,2009-01-05为2009年第一周的第一天
*
* @param year
* @param week
* @return
*/
public static Date getFirstDayOfWeek(int year, int week) {
Calendar calFirst = Calendar.getInstance();
calFirst.set(year, 0, 7);
Date firstDate = getFirstDayOfWeek(calFirst.getTime());
Calendar firstDateCal = Calendar.getInstance();
firstDateCal.setTime(firstDate);
Calendar c = new GregorianCalendar();
c.set(Calendar.YEAR, year);
c.set(Calendar.MONTH, Calendar.JANUARY);
c.set(Calendar.DATE, firstDateCal.get(Calendar.DATE));
Calendar cal = (GregorianCalendar) c.clone();
cal.add(Calendar.DATE, (week - 1) * 7);
firstDate = getFirstDayOfWeek(cal.getTime());
return firstDate;
}
/** */
/**
* 取得某年某周的最后一天 对于交叉:2008-12-29到2009-01-04属于2008年的最后一周, 2009-01-04为
* 2008年最后一周的最后一天
*
* @param year
* @param week
* @return
*/
public static Date getLastDayOfWeek(int year, int week) {
Calendar calLast = Calendar.getInstance();
calLast.set(year, 0, 7);
Date firstDate = getLastDayOfWeek(calLast.getTime());
Calendar firstDateCal = Calendar.getInstance();
firstDateCal.setTime(firstDate);
Calendar c = new GregorianCalendar();
c.set(Calendar.YEAR, year);
c.set(Calendar.MONTH, Calendar.JANUARY);
c.set(Calendar.DATE, firstDateCal.get(Calendar.DATE));
Calendar cal = (GregorianCalendar) c.clone();
cal.add(Calendar.DATE, (week - 1) * 7);
Date lastDate = getLastDayOfWeek(cal.getTime());
return lastDate;
}
/**
*获取当前日期的年、月、日
*/
public void display() {
Calendar cal = Calendar.getInstance();
// 年
int year = cal.get(cal.YEAR);
// 月
int month = cal.get(cal.MONTH) + 1;
// 日
int date = cal.get(cal.DATE);
// 星期
int today = cal.get(cal.DAY_OF_WEEK) - 1;
}
public static void main(String args[]){
List<String> listWeekDate = DateUtil.getWeekDays(2010,52);
for(String weeks :listWeekDate){
System.out.println("weeks:"+weeks);
}
}
}
分享到:
相关推荐
java获取日期 本周本年 本月 上一年java获取日期 本周本年 本月 上一年java获取日期 本周本年 本月 上一年java获取日期 本周本年 本月 上一年java获取日期 本周本年 本月 上一年java获取日期 本周本年 本月 上一年...
java 周算法 java 周算法 java 周算法 通过日期获得周别信息
Java中用Calendar类计算周和周的起始日期
java获取某年12个月的周六日的日期,欢迎下载,谢谢谢谢
Java日期常用工具类,可以快速获取月、周、日以及日期间的差值计算
非常完美Java实现年、月、日、周访问量统计、欢迎jia3456.com大家下载!
计算当前第几周,星期几,日期格式化,得到某年某月的日期,取得当前日期所在周的第几天
Java实现:月,日,年,周,访问量统计
java 显示某年某月某一周的信息 java 显示某年某月某一周的信息 java 显示某年某月某一周的信息
java获取今天、昨天、近一周、近两周、近三周、近一月、近两月、近三月、近半年、本周、上周、本月、上月时间段
java 查询本周一和本周日的日期 下载可直接运行
Calendar c = new GregorianCalendar(); c.setFirstDayOfWeek(Calendar.MONDAY); c.setTime(new Date()); c.set(Calendar.DAY_OF_WEEK, c.getFirstDayOfWeek()); // Monday System.out.println(c.getTime());...
java时间操作工具类,已封装好,包含获取某一时间的年,月,日,星期。以及对某一时间进行年,月,日,周的加减。还有获取某一时间年,月,日,周的起始和结束时间等等
Java自定义日期时间选择控件,支持常见的格式:如yyyy-MM-dd HH:mm:ss 或yyyy-MM-dd等这些基本格式组合,控件根据格式串调整下拉选择面板中显示内容
自己整理的Java日期处理类 。包含获取两个之间段之间的天数、月初日期,月末日期、一个时间段之间的所有的日期,月份 一周的第一天,最后一天、 当前是周几等。仅供参考
Java获取各种常用时间方法 获取当天日期、获取本周一日期、获取本周日的日期、获取上周一日期等方法
java根据日期计算年龄以及所在星期,简单可靠,亲测可用。
最近在做一个业务系统时,需要判断两个日期是否在同一周,开始没有太去想,就在网上找一下看是否有现成的代码可以复用,找到一个函数,经过试验,发现该函数判断不准确,而且该函数的可读性很差,于是自己想了一下,...
java获取当前日期时间和本周的星期一的日期时间.docx
java 获取当前日期时间和本周的星期一的日期时间.docx