博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Calendar计算日期
阅读量:7110 次
发布时间:2019-06-28

本文共 2769 字,大约阅读时间需要 9 分钟。

一。周六三月进去。星期天

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()它被设置

版权声明:本文博主原创文章,博客,未经同意不得转载。

你可能感兴趣的文章
我的友情链接
查看>>
查找yum安装文件路径
查看>>
cut命令
查看>>
linux装oracle10.0.5简记
查看>>
Linux命令:DNS应用
查看>>
Linux图形界面常用操作方法
查看>>
简单的动态线性表
查看>>
Python练习28
查看>>
VMware ThinApp - 单文件软件、便携软件制作工具
查看>>
json 通过Ztree展示到页面
查看>>
RSA2012系列(4):网络战揭秘
查看>>
.NET Micro Framework动态调用C/C++底层代码(原理篇)
查看>>
国际标准的网页BANNER规格
查看>>
java安装1.8的经验和Error: Registry key 'Software\JavaSoft\Java Runtime Environment'\CurrentVers问题处理...
查看>>
linux 安装配置JDK
查看>>
redis 并发锁
查看>>
程序员需要具备的基本技能 新手必看
查看>>
第十章网络设备基本调试
查看>>
docker使用入门
查看>>
流程管理的五大误区
查看>>