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

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

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

Calendar计算日期的更多相关文章

  1. POJ2080:Calendar(计算日期)

    Calendar Time Limit: 1000MS   Memory Limit: 30000K Total Submissions: 12842   Accepted: 4641 Descrip ...

  2. 计算日期时间 自动加1天 PHP计算闰年 java与PHP时间戳对比区别

    昨天写一个同步数据库的模块  从一个数据库同步到另外一个数据库,因为数据较多,不可能一次性全部搬迁过去,所以就按照每天搬迁! 写了一个 模块,点击加1,只要点击一次,自动从A数据库取出1天的数据, 并 ...

  3. js计算日期相差的天数

    在网站开发中,经常会遇到计算日期相差的天数,js 没有提供相应的方法,所以自己写一个,方便将来查看: 代码: function DateDiff(sDate1, sDate2, splitStr) { ...

  4. Java8中计算日期时间差

    一.简述 在Java8中,我们可以使用以下类来计算日期时间差异: 1.Period 2.Duration 3.ChronoUnit 二.Period类 主要是Period类方法getYears(),g ...

  5. sqlserver计算日期

    在网上找到的一篇文章,相当不错哦O(∩_∩)O~ 这是计算一个月第一天的SQL 脚本:  SELECT DATEADD(mm, DATEDIFF(mm,0,getdate()), 0) --当月的第一 ...

  6. MySQL计算日期的函数DATE_SUB(d,INTERVAL expr type)

    MySQL计算日期的函数DATE_SUB(d,INTERVAL expr type) DATE_SUB(d,INTERVAL expr type)函数返回起始日期d减去一个时间段后的日期. expr是 ...

  7. PostgreSQL 当月最后一天的工作日 , 计算日期是星期几

    可以用pg自带函数select extract(dow from current_date),之所以没用主要是展示一下通过数学方法计算日期的原理. drop function if exists ge ...

  8. Java程序设计——反转字符串 & 找朋友 & 计算int型二进制1的个数 & 情报加密 & 计算日期 & 求近似数 & 输出较小数(练习1)

    作为刚刚入门Java的选手,其实C++的功底起到了很大的作用.但是,Java之于C++最大的不同,我个人认为,是其类的多样性.才入门的我,写着老师布置的简单的面对过程的题,如果是C++,可以算是简单了 ...

  9. Calendar计算一个月前的日期,踩坑记录

    错误示范:calendar.set(Calendar.MONTH, calendar.get(Calendar.MONTH) - 1);//获取一个月前的今天这种写法假设传入的日期为2019-03-3 ...

随机推荐

  1. SAE开发一个应用(不仅仅是建站)

    参考http://jingyan.baidu.com/user/npublic/?un=944615045 http://sae.sina.com.cn/ 激活sae账户 登陆新浪云计算官方网站,网址 ...

  2. Android之Http通信——3.Android HTTP请求方式:HttpURLConnection

    3.Android HTTP请求方式之HttpURLConnection 引言: 好了,前两节我们已经对HTTP协议进行了学习.相信看完前两节的朋友对HTTP协议相比之前 应该更加熟悉吧.好吧.学了要 ...

  3. My Solution: Word Ladder

    public class Solution { public int ladderLength(String start, String end, Set<String> dict) { ...

  4. 强大的PropertyGrid

    PropertyGrid, 做工具一定要用这东西..... 把要编辑的对象看成类的话, 全部要编辑的属性就是成员 嗯嗯, 近期看了几眼Ogitor, 它对于PropertyGrid的使用就非常不错 全 ...

  5. 上传App时遇IDFA错误问题

    今天上传App时遇到下图1的情况,很纳闷,又是苹果新规. 通常是第三方的库引起啦,马上想到百度统计了,打开SDK下载页面看看简单介绍,里面有讲到这个问题了. 图2就是这次改动的原因. 更新SDK,之前 ...

  6. SQL Server,Access数据库查询易混点和C#中parameter指定参数长度的优缺点

    在学校的时候就经常做一些网站,所以这次在公司实习,组长第一次给了一个企业的网站还是很快的完成了.中间并没有遇到什么大的问题,但是还是遇到了两个新手非常容易混淆的小问题,所以拿出来跟大家分享一下. 主要 ...

  7. 阅读UML类图和时序图

    这里不会将UML的各种元素都提到.我仅仅想讲讲类图中各个类之间的关系. 能看懂类图中各个类之间的线条.箭头代表什么意思后,也就足够应对 日常的工作和交流: 同一时候,我们应该能将类图所表达的含义和终于 ...

  8. Java栈的实例-数组和链表两种方法(转)

    一.栈 栈的定义 栈(Stack)是限制仅在表的一端进行插入和删除运算的线性表. (1)通常称插入.删除的这一端为栈顶 (Top),另一端称为栈底 (Bottom). (2)当表中没有元素时称为空栈. ...

  9. UVA 11388-GCD LCM(数学)

    I I U C   O N L I N E   C  Problem D: GCD LCM Input: standard input Output: standard output The GCD ...

  10. 返璞归真 asp.net mvc (10) - asp.net mvc 4.0 新特性之 Web API

    原文:返璞归真 asp.net mvc (10) - asp.net mvc 4.0 新特性之 Web API [索引页][源码下载] 返璞归真 asp.net mvc (10) - asp.net ...