环球热门:怎么计算一年的天数_一年的天数怎么确定
你们好,最近小未来发现有诸多的小伙伴们对于怎么计算一年的天数,一年的天数怎么确定这个问题都颇为感兴趣的,今天小活为大家梳理了下,一起往下看看吧。
(相关资料图)
1、在编写代码之前,要适当考虑如何计算,而不是拿到一个题目,打开编译器就立刻开始做。首先,我们需要一个时间类型来封装我们的年、月、日属性,我们需要一些计算天数的方法。
2、公历年,要区分闰年和平年,那么首先要有一个判断是不是闰年的函数。其次,我们要计算2002年到2017年有多少个平年和闰年,然后再计算这些年过去了多少天。
3、最后还要加上2017年6月23日已经发生的时间,即计算从元旦到6月23日用了多少天,相应减去高估,3个月10天。
4、但是,这几个月,天数也有变化。理清逻辑后再编码。
5、如上所述,我们需要封装时间类。
6、package day2.homework1;
7、public class MyDate {
8、int year;
9、int month;
10、int day;
11、public MyDate(int year, int month, int day) {
12、super();
13、this.year=year;
14、this.month=month;
15、this.day=day;
16、}
17、public int getYear() {
18、return year;
19、}
20、public void setYear(int year) {
21、this.year=year;
22、}
23、public int getMonth() {
24、return month;
25、}
26、public void setMonth(int month) {
27、this.month=month;
28、}
29、public int getDay() {
30、return day;
31、}
32、public void setDay(int day) {
33、this.day=day;
34、}
35、}
36、其次,判断今年是不是闰年。
37、/**
38、*获取年份是否是闰年。
39、* @param year
40、* @return
41、*/
42、public boolean checkLeap(int year) {
43、boolean flag=false;
44、if(0==year%40!=year%100||0==year%400)
45、{
46、flag=true;
47、}
48、return flag;
49、}
50、获取一年中的天数
51、/**
52、*获取一年中的天数
53、* @param year
54、* @return
55、*/
56、public int getDaysOfYear(int year) {
57、int count=365;
58、if(checkLeap(year))
59、{
60、count=366;
61、}
62、return count;
63、}
64、获取一个月中的天数。
65、/**
66、*获取一个月中的天数
67、* @param month
68、* @return
69、*/
70、public int getDaysOfMonth(int year,int month) {
71、int count=0;
72、switch(month)
73、{
74、case 1:
75、count=31;
76、break;
77、case 2:
78、if(checkLeap(year))
79、{
80、count=29;
81、}
82、else
83、{
84、count=28;
85、}
86、break;
87、case 3:
88、count=31;
89、break;
90、case 4:
91、count=30;
92、break;
93、case 5:
94、count=31;
95、break;
96、case 6:
97、count=30;
98、break;
99、case 7:
100、count=31;
101、break;
102、case 8:
103、count=31;
104、break;
105、case 9:
106、count=30;
107、break;
108、case 10:
109、count=31;
110、break;
111、case 11:
112、count=30;
113、break;
114、case 12:
115、count=31;
116、break;
117、}
118、return count;
119、}
120、根据计算方法实现我们的算法。
121、public int getDays() {
122、int count=0;
123、/**
124、*计算某年-某年的具体天数。
125、*/
126、for(int i=date1.year;idate2.year;i++)
127、{
128、count+=getDaysOfYear(i);
129、}
130、/**
131、*将去年的月份相加。
132、*/
133、for(int i=1;idate2.month;i++)
134、{
135、count+=getDaysOfMonth(date2.year,i);
136、}
137、/**
138、*去年加入的天数
139、*/
140、count+=date2.day;
141、/**
142、*减去第一年的时间。
143、*/
144、for(int i=1;idate1.month;i++)
145、{
146、count-=getDaysOfMonth(date1.year,i);
147、}
148、count-=date1.day;
149、return count;
150、}
151、//源代码类
152、package day2.homework1;
153、public class MyCalendar {
154、MyDate date1;
155、MyDate date2;
156、public MyCalendar(MyDate date1, MyDate date2) {
157、super();
158、this.date1=date1;
159、this.date2=date2;
160、}
161、public int getDays() {
162、int count=0;
163、/**
164、*计算某年-某年的具体天数。
165、*/
166、for(int i=date1.year;idate2.year;i++)
167、{
168、count+=getDaysOfYear(i);
169、}
170、/**
171、*将去年的月份相加。
172、*/
173、for(int i=1;idate2.month;i++)
174、{
175、count+=getDaysOfMonth(date2.year,i);
176、}
177、/**
178、*去年加入的天数
179、*/
180、count+=date2.day;
181、/**
182、*减去第一年的时间。
183、*/
184、for(int i=1;idate1.month;i++)
185、{
186、count-=getDaysOfMonth(date1.year,i);
187、}
188、count-=date1.day;
189、return count;
190、}
191、/**
192、* 获取每个月的天数
193、* @param month
194、* @return
195、*/
196、public int getDaysOfMonth(int year,int month) {
197、int count=0;
198、switch(month)
199、{
200、case 1:
201、count=31;
202、break;
203、case 2:
204、if(checkLeap(year))
205、{
206、count=29;
207、}
208、else
209、{
210、count=28;
211、}
212、break;
213、case 3:
214、count=31;
215、break;
216、case 4:
217、count=30;
218、break;
219、case 5:
220、count=31;
221、break;
222、case 6:
223、count=30;
224、break;
225、case 7:
226、count=31;
227、break;
228、case 8:
229、count=31;
230、break;
231、case 9:
232、count=30;
233、break;
234、case 10:
235、count=31;
236、break;
237、case 11:
238、count=30;
239、break;
240、case 12:
241、count=31;
242、break;
243、}
244、return count;
245、}
246、/**
247、* 获取某年的天数
248、* @param year
249、* @return
250、*/
251、public int getDaysOfYear(int year) {
252、int count=365;
253、if(checkLeap(year))
254、{
255、count=366;
256、}
257、return count;
258、}
259、/**
260、* 获取该年是否是闰年
261、* @param year
262、* @return
263、*/
264、public boolean checkLeap(int year) {
265、boolean flag=false;
266、if(0==year%40!=year%100||0==year%400)
267、{
268、flag=true;
269、}
270、return flag;
271、}
272、}
273、//我们编写测试类进行测试
274、package day2.homework1;
275、public class TestMyCalendar {
276、public static void main(String[] args) {
277、MyDate date1=new MyDate(2002,03,10);
278、MyDate date2=new MyDate(2017,06,23);
279、MyCalendar calendar=new MyCalendar(date1,date2);
280、System.out.println(calendar.getDays());
281、}
282、}
以上就是一年的天数怎么确定这篇文章的一些介绍,希望对大家有所帮助。
关键词:
2023-04-23 08:11:31
2023-04-23 07:44:30
2023-04-23 07:30:14
2023-04-23 06:37:50
2023-04-23 05:43:13
2023-04-23 04:57:09
2023-04-23 04:11:42
2023-04-23 03:34:59
2023-04-23 02:45:27
2023-04-23 01:23:23
2023-04-23 01:07:25
2023-04-23 00:56:35
2023-04-22 22:47:23
2023-04-22 22:07:57
2023-04-22 20:49:35
资讯
品牌