多语言展示
当前在线:1628今日阅读:126今日分享:42

简易计算年份与年份之间的天数

例如,2002年03月10日至2017年06月23日,我想知道,它们相差多少天,应该怎样用编程方法实现呢?
方法/步骤
1

在编写代码之前,我们应该适当考虑如何去计算,而不是拿到一道题目,马上打开编译器就着手做。先分析我们的问题,我们需要一个时间类型,来封装我们的年月日属性,我们需要一些方法,来计算天数。

2

公历的年,是需要区分闰年还是平年的,那我们首先得有一个判断是否是闰年的函数。其次,我们得计算从2002-2017年 一共有多少个平年多少个闰年,然后去计算经过这些年后,相当于过了多少天。

3

最后,我们得相应的加上2017年6月23日 已经发生的时间,即计算从 元旦开始到6月23日花费了多少天,以及得相应减去多算的,3个月零10天。然而这些月份,也是有天数的变化。整理逻辑后我们再进行编码。

4

上面提到了我们需要封装时间类。package day2.homework1;public class MyDate { int year; int month; int day; public MyDate(int year, int month, int day) { super(); this.year = year; this.month = month; this.day = day; } public int getYear() { return year; } public void setYear(int year) { this.year = year; } public int getMonth() { return month; } public void setMonth(int month) { this.month = month; } public int getDay() { return day; } public void setDay(int day) { this.day = day; } }

5

其次判断这一年是否是闰年/** * 获取该年是否是闰年 * @param year * @return */ public boolean checkLeap(int year) { boolean flag=false; if(0==year%4&&0!=year%100||0==year%400) { flag =true; } return flag; }

6

获取某一年的天数/** * 获取某年的天数 * @param year * @return */ public int getDaysOfYear(int year) { int count=365; if(checkLeap(year)) { count=366; } return count; }

7

获取某个月的天数/** * 获取某个月的天数 * @param month * @return */ public int getDaysOfMonth(int year,int month) { int count=0; switch(month) { case 1: count=31; break; case 2: if(checkLeap(year)) { count=29; } else { count=28; } break; case 3: count=31; break; case 4: count=30; break; case 5: count=31; break; case 6: count=30; break; case 7: count=31; break; case 8: count=31; break; case 9: count=30; break; case 10: count=31; break; case 11: count=30; break; case 12: count=31; break; } return count; }

8

根据计算方法来实现我们的算法public int getDays() { int count=0; /** * 计算某年-某年的具体天数 */ for(int i=date1.year;i

9

//源码类package day2.homework1;public class MyCalendar { MyDate date1; MyDate date2; public MyCalendar(MyDate date1, MyDate date2) { super(); this.date1 = date1; this.date2 = date2; } public int getDays() { int count=0; /** * 计算某年-某年的具体天数 */ for(int i=date1.year;i

10

//我们编写测试类进行测试package day2.homework1;public class TestMyCalendar { public static void main(String[] args) { MyDate date1=new MyDate(2002,03,10); MyDate date2=new MyDate(2017,06,23); MyCalendar calendar=new MyCalendar(date1,date2); System.out.println(calendar.getDays()); }}

推荐信息