日历计算java

日历计算java,第1张

日历计算java 问题描述

该问题主要解决已知起始时间和延续时长求总天数。
比如:起始日期为2019.9.1,已知期限为三个月,那么终止时间为2019.12.1。根据以上来求这三个月到底有多长时间。

解决思路

这道题的本质在于平年闰年判断和日期循环规律的掌握和应用。以三个月为例,我们需要注意的关键点有一下几点:
1、这三个月是否是同一年份的三个月;
2、如果不是同一年的三个月需要判断改日期的下一年是平年还是闰年
3、在月份数加三的时候,会产生超过12的月份数,此时应该如何处理;
4、虽然说是一共三个月,但是实际计算的时候需要考虑四个月每一个月具体有多少天;
根据以上关键点,可以得出以下的思维导图(以三个月为例):

具体过程

1、在类中定义两个数组分别表示平年表和闰年表

	public int[] a={0,31,29,31,30,31,30,31,31,30,31,30,31};  //闰年月份表  a[i]=x表示i月有x天(其中a[0]和b[0]没有使用)
	public int[] b={0,31,28,31,30,31,30,31,31,30,31,30,31};  //平年月份表

(其实这里a[i]表示第i+1月会在后面省去很多不必要的麻烦,但是这里我为了逻辑清晰就直接用a[i]表示第i月)
2、后续就是用if_else语句判断年月的类型,然后根据年月类型进行相应计算了。具体条件判断分支可参考我上面那张思维导图。
该类对应的接口如下:

public interface CalendarInterface {

	int getYear();

	void setYear(int year);

	int getMonth();

	void setMonth(int month);

	int getDay();

	void setDay(int day);

	int getMyDays(int category);

	String getEndDate(int category);

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5712441.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-18
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存