Calendar计算日期
2023-09-14 09:08:02 时间
一。周六三月进去。星期天
Calendar calendar=Calendar.getInstance();//当前日期 Calendar calendar2=Calendar.getInstance(); int curYear = calendar2.get(Calendar.YEAR); // 得到系统年份 int curMonth = calendar2.get(Calendar.MONTH); // 得到系统月份 int curDay=calendar2.get(Calendar.DAY_OF_MONTH); Calendar nowyear=Calendar.getInstance(); nowyear.set(curYear,curMonth, curDay);//将開始日期设置为当天。如7月17日 Calendar nexty=Calendar.getInstance(); calendar2.add(Calendar.MONTH,4); nexty.set(calendar2.get(Calendar.YEAR),calendar2.get(Calendar.MONTH), 1);//将结束时间设置为三个月后的第一天,如10月1日 calendar.add(Calendar.DAY_OF_MONTH, -calendar.get(Calendar.DAY_OF_WEEK));//周六 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); /** 初始化周六的日期*/ calendar.add(Calendar.DAY_OF_MONTH, -calendar.get(Calendar.DAY_OF_WEEK));//周六 Calendar SaturdayC=(Calendar) calendar.clone(); for(;SaturdayC.before(nexty);SaturdayC.add(Calendar.DAY_OF_YEAR,7)){ if(SaturdayC.after(nowyear)){ Date date = sdf.parse(SaturdayC.get(Calendar.YEAR)+"-"+(1+SaturdayC.get(Calendar.MONTH))+"-"+SaturdayC.get(Calendar.DATE)); String time=sdf.format(date); SaturdayList.add(time); } } /** 初始化周日的日期*/ calendar.add(Calendar.DAY_OF_MONTH,-calendar.get(Calendar.DAY_OF_WEEK)+1);//周日 Calendar SundayC=(Calendar) calendar.clone(); for(;SundayC.before(nexty);SundayC.add(Calendar.DAY_OF_YEAR,7)){ if(SundayC.after(nowyear)){ Date date = sdf.parse(SundayC.get(Calendar.YEAR)+"-"+(1+SundayC.get(Calendar.MONTH))+"-"+SundayC.get(Calendar.DATE)); String time=sdf.format(date); SundayList.add(time); } }
二,得到三个月内的工作日
/** * 得到三个月末的最后一天 */ Calendar cal = Calendar.getInstance(); // 不加以下2行。就是取当前时间前一个月的第一天及最后一天 cal.set(Calendar.YEAR,curYear); cal.set(Calendar.MONTH,curMonth+2); cal.set(Calendar.DAY_OF_MONTH, 1); cal.add(Calendar.DAY_OF_MONTH, -1); Date lastDate = cal.getTime(); String start =curYear+"-"+curMonth+"-"+curDay; SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); Date dBegin = null ; try { dBegin = sdf.parse(start); } catch (ParseException e) { e.printStackTrace(); } WorkdayList.add(sdf.format(dBegin)); Calendar calBegin = Calendar.getInstance(); // 使用给定的 Date 设置此 Calendar 的时间 calBegin.setTime(dBegin); Calendar calEnd = Calendar.getInstance(); // 使用给定的 Date 设置此 Calendar 的时间 calEnd.setTime(lastDate); // 測试此日期是否在指定日期之后 while (lastDate.after(calBegin.getTime())){ // 依据日历的规则。为给定的日历字段加入或减去指定的时间量 calBegin.add(Calendar.DAY_OF_MONTH, 1); WorkdayList.add(sdf.format(calBegin.getTime())); } WorkdayList.removeAll(SaturdayList); WorkdayList.removeAll(SundayList);
三、日期间的比較大小
date1.after(date2) date1.before(date2)
四、Calendar中add() 与set()差额
add()它是移位。set()它被设置
版权声明:本文博主原创文章,博客,未经同意不得转载。
相关文章
- golang如何计算两个日期之间的日期差?
- Python3 常用日期计算方法
- SQL语句计算两个日期之间有多少个工作日的方法
- Python日期时间函数详解程序员
- java 日期格式化– SimpleDateFormat 的使用。字符串转日期,日期转字符串详解编程语言
- python 计算一年内的所有周的具体日期详解编程语言
- Java计算两个日期相差天数详解编程语言
- java日期的加减详解编程语言
- 的计算MySQL计算两个日期之间的差值(mysql两个日期之间)
- 计算Oracle日期差异:一个指南(oracle日期相减)
- 日期相减——利用MySQL实现快捷高效的时间计算。(mysql日期减)
- SQL Server计算日期间隔:求天数差(sqlserver天数差)
- MySQL求解两个日期间隔天数实例(mysql计算两个日期之间的天数)
- MSSQL中如何精准比较日期(mssql 比较日期)
- MySQL中如何使用AGE字段进行日期计算(mysql中age)
- Oracle中如何快速增加一月日期(oracle中日期加一月)
- 加减Oracle快速计算2小时内日期的加减法(oracle2小时内日期)
- Oracle中2日期加减计算技巧(oracle2个日期加减)
- Oracle关于时间/日期的操作
- 计算一段日期内的周末天数的php代码(星期六,星期日总和)
- JavaScript判断日期格式是否正确的实现代码
- 一个JS的日期格式化算法示例
- C#由当前日期计算相应的周一和周日的实例代码
- JAVA格式化时间日期的简单实例