问题补充说明:如果已知一个日期为2007年3月8日,求10天后是哪一天?367天后呢? 设计思路:1.定义一个MyDate类,成员有: class MyDate { private int day; private int month; private int year; public MyDate(int y,int m,int d){...} public MyDat... 如果已知一个日期为2007年3月8日,求10天后是哪一天?367天后呢?设计思路:1.定义一个MyDate类,成员有:class MyDate{ private int day; private int month; private int year; public MyDate(int y,int m,int d){...} public MyDate dayInc(){...} public MyDate dayInc(int x){...} public void display(){...}}2.对MyDate类进行测试,代码如下public class TestDate{ public static void main(String[]args) { MyDate d1=new MyDate(2007,3,8); MyDate d2; d2=d1.dayInc(10); d2.display(); d2=d1.dayInc(367); d2.display(); }}
可以用JAVA中的Calendar。
⑴Calendar是java.util.*中的一个类,所以在使用前,我们要导入包java.util.*;
//产生一个日历类的对象360问答,我们不能使用newCalendar()来构造实例,因为//Calendar的构造函数都是p概几灯终问区rotected,也就是说,构造函数是保护成员。
⑵关于Calendar的Filed
在Calendar中定义了日历的各个成员,比如:年,月,日,包括不同的记录方法,比如:同一天(2005-12-14)来说,在记录的时候,我们可以说是一周中的周三,是12月的第14天,是2005年的第****(你可以自己算以屋片四飞一下)天。这就是不同的记录方法,所以在Calendar中就有了不同的计推何犯饭斯受定义:
publicfinals个造财杀粉罪盐城确达识taticintERA=0;
publicfinalstaticintYEAR=1;
publicfinalstaticintM地练甲选病ONTH=2;
publicfinalstaticintWEEK_OF_YEAR=3;
p轴掌态主但亲参种ublicfin简守染牛史校减仍alstaticintWE妒定客均EK_OF_MONTH=4;
publicfin伟章冷重突alstaticintDATE=5;
publicfinalstaticintDAY_OF_MONTH=5;
publicfinalstaticintDAY_OF_YEAR=6;
publicfina次盟黄句酒础准席座乐lstaticintDAY_OF_WEEK=7;
pub滑问licfinalstaticintDAY_OF_WEEK_IN_MONTH=8;
publicfinalstaticintAM_PM=9灯袁;
publicfinalstaticintHOUR=10;
publicfinalstaticintHOUR_OF_D喜日黑AY=11;
publicfinalstaticintMINUTE=12;
publicfinalstaticintSE群COND=13;
这些定义是不同记录方法的标识,在此我没有列举完全,感兴趣的话你可以看一下Calendar的源代码。
这些就是Calendar的Field,根据你的不同需求就可以去处不同的农跑点跑效如Field,不同的记录方法也是不同的的F个顶对半异义掉烟征iled,这样应该是好理解一些。
有了这些,我们就可以取得你想要的任何需要的东西了,如果你想知道今天是一年中的哪一天,就可以用:
intday=calendar.get(***.DAY_OF_YEAR);
参数就是你想取得的Field,所有的这些都在Calendar中定义好了。
结果会告诉我们2005-12-14是2005年的第348天。
然后你想知道30天后是几号呢?
calendar.set(***.DAY_OF_YEAR,day+30);
在这,你不需要去考虑12-14号加上30天是一月,是不是会出错,不会的,Calendar自己知道那一天是几月几号。
所以你再取得其日期的时候就可以知道其日期了。当然你也可以直接通过Calendar来取得。
其他的我就不一一说了,是一样的道理。这样一来,我们就可以使用Calendar实现日期的随意加减了。
标签:ava,代码,来自