日期减日期的小技巧
来源:互联网 发布:空气净化器哪个好 知乎 编辑:程序博客网 时间:2024/05/18 15:04
刚刚在想我的合同什么还有多长时间到期,扳着手指头数觉得太烦,觉得写个程序还能练练手,在这里GregorianCalendar和Calendar 的用途是一样的,只不过是想多尝试一下。
下面引自:http://article.pchome.net/196711.html
在Calendar中定义了日历的各个成员,比如:年,月,日,包括不同的记录方法,比如:同一天(2005-12-14)来说,在记录的时候,我们可以 说是一周中的周三,是12月的第14天,是2005年的第****(你可以自己算一下)天。这就是不同的记录方法,所以在Calendar中就有了不同的 定义:
public final static int ERA = 0;
public final static int YEAR = 1;
public final static int MONTH = 2;
public final static int WEEK_OF_YEAR = 3;
public final static int WEEK_OF_MONTH = 4;
public final static int DATE = 5;
public final static int DAY_OF_MONTH = 5;
public final static int DAY_OF_YEAR = 6;
public final static int DAY_OF_WEEK = 7;
public final static int DAY_OF_WEEK_IN_MONTH = 8;
public final static int AM_PM = 9;
public final static int HOUR = 10;
public final static int HOUR_OF_DAY = 11;
public final static int MINUTE = 12;
public final static int SECOND = 13;
这些定义是不同记录方法的标识,在此我没有列举完全,感兴趣的话你可以看一下Calendar的源代码。
这些就是Calendar的Field,根据你的不同需求就可以去处不同的Field,不同的记录方法也是不同的的Filed,这样应该是好理解一些。
有了这些,我们就可以取得你想要的任何需要的东西了,如果你想知道今天是一年中的哪一天,就可以用:
int day = calendar.get(Calendar.DAY_OF_YEAR);
参数就是你想取得的Field,所有的这些都在Calendar中定义好了。
结果会告诉我们2005-12-14是2005年的第348天。
然后你想知道30天后是几号呢?
calendar.set(Calendar.DAY_OF_YEAR, day + 30);
在这,你不需要去考虑12-14号加上30天是一月,是不是会出错,不会的,Calendar自己知道那一天是几月几号。
import java.util.Calendar;
import java.util.GregorianCalendar;
public class CalculateDate {
public static void main(String[] args) {
GregorianCalendar now = new GregorianCalendar();
Calendar finish = Calendar.getInstance();
finish.set(2007, Calendar.NOVEMBER, 20);
int dayOfYear = now.get(Calendar.DAY_OF_YEAR);
int finishDay = finish.get(Calendar.DAY_OF_YEAR);
System.out.println(finishDay - dayOfYear + "");
}
}
import java.util.GregorianCalendar;
public class CalculateDate {
public static void main(String[] args) {
GregorianCalendar now = new GregorianCalendar();
Calendar finish = Calendar.getInstance();
finish.set(2007, Calendar.NOVEMBER, 20);
int dayOfYear = now.get(Calendar.DAY_OF_YEAR);
int finishDay = finish.get(Calendar.DAY_OF_YEAR);
System.out.println(finishDay - dayOfYear + "");
}
}
下面引自:http://article.pchome.net/196711.html
在Calendar中定义了日历的各个成员,比如:年,月,日,包括不同的记录方法,比如:同一天(2005-12-14)来说,在记录的时候,我们可以 说是一周中的周三,是12月的第14天,是2005年的第****(你可以自己算一下)天。这就是不同的记录方法,所以在Calendar中就有了不同的 定义:
public final static int ERA = 0;
public final static int YEAR = 1;
public final static int MONTH = 2;
public final static int WEEK_OF_YEAR = 3;
public final static int WEEK_OF_MONTH = 4;
public final static int DATE = 5;
public final static int DAY_OF_MONTH = 5;
public final static int DAY_OF_YEAR = 6;
public final static int DAY_OF_WEEK = 7;
public final static int DAY_OF_WEEK_IN_MONTH = 8;
public final static int AM_PM = 9;
public final static int HOUR = 10;
public final static int HOUR_OF_DAY = 11;
public final static int MINUTE = 12;
public final static int SECOND = 13;
这些定义是不同记录方法的标识,在此我没有列举完全,感兴趣的话你可以看一下Calendar的源代码。
这些就是Calendar的Field,根据你的不同需求就可以去处不同的Field,不同的记录方法也是不同的的Filed,这样应该是好理解一些。
有了这些,我们就可以取得你想要的任何需要的东西了,如果你想知道今天是一年中的哪一天,就可以用:
int day = calendar.get(Calendar.DAY_OF_YEAR);
参数就是你想取得的Field,所有的这些都在Calendar中定义好了。
结果会告诉我们2005-12-14是2005年的第348天。
然后你想知道30天后是几号呢?
calendar.set(Calendar.DAY_OF_YEAR, day + 30);
在这,你不需要去考虑12-14号加上30天是一月,是不是会出错,不会的,Calendar自己知道那一天是几月几号。
- 日期减日期的小技巧
- 日期输出小技巧
- 日期时间字符串的改写小技巧
- java获取日期的小技巧
- JS日期比较的一个小技巧
- mysql 日期小技巧方案
- 【经验总结】shell 日期小技巧
- 小技巧:js日期比较
- 小技巧(二):格式化日期显示的颜色
- 将timestamp 日期类型转为String 类型的小技巧
- js-日期格式处理的几个小技巧
- 小技巧(五)格式化日期为短日期
- t-sql日期函数小技巧
- Linq小技巧:日期處理
- oracle处理日期的技巧
- 日期函数的小问题
- 一个日期的小问题
- java 日期的小整理
- java数据类型,hibernate数据类型,标准sql数据类型之间的对应表
- ASP.NET上传大文件
- 什么时候你可以创业?
- 转:JavaScript和ASP.NET的传值
- 关于java内部类(Inner Class) 不断更新中
- 日期减日期的小技巧
- CONVERT的使用方法
- Zenoss
- SQL语句集锦
- VC中使用Gdi+合并jpg图片
- 在自定义的类中访问文档类
- ARM交叉编译工具集名称详解
- Java EE 6 草案提交, 新特性一览
- 在 Linux 下用户空间与内核空间数据交换的方式,第 1 部分: 内核启动参数、模块参数与sysfs、sysctl、系统调用和netlink