研究生考试892-2017.7.学者A去国外求学,假定离开祖国的日子为公元A年B月C日,返回的日子为公元X年Y月Z日。请计算A出国求学的总天数(含离开和返回的当天)

1.题目:

 

学者A去国外求学,假定离开祖国的日子为公元A年B月C日,返回的日子为公元X年Y月Z日。请计算A出国求学的总天数(含离开和返回的当天)

2.分析:

判断是否是闰年 进而判断2月的天数

总体分为3部   第一步就是求 离开那年的天数  

                        第二部就是求  返回那年的天数        

                        第三部就是求 除去头尾的这些年 每年天数总数累加

3.代码展示(复制可直接运行)

public class Y2017T7 {
	public static boolean isRunNian(int year){
		boolean flag=false;
		if(year%4==0&&year%100!=0||year%400==0){
			flag=true;
		}
		return flag;
	}
	public static int countDays(String nowDate,String oldDate){
		String regex="\\D+";
		int sumdays=0;
		int year=365;
		int []day={31,28,31,30,31,30,31,31,30,31,30,31};
		String []oldArr=oldDate.split(regex);
		String []nowArr=nowDate.split(regex);
		int oldYear=Integer.parseInt(oldArr[0]);
		int nowYear=Integer.parseInt(nowArr[0]);
		int oldMonth=Integer.parseInt(oldArr[1]);
		int newMonth=Integer.parseInt(nowArr[1]);
		int oldDay=Integer.parseInt(oldArr[2]);
		int newDay=Integer.parseInt(nowArr[2]);
		System.out.print("old"+oldYear+" old"+oldMonth+" old"+oldDay);
		System.out.print("  now"+nowYear+" now"+newMonth+" old"+newDay);
		for(int i=oldYear;i<=nowYear;i++){
			day[1]=28;
			year=365;
			if(isRunNian(i)){
				day[1]=29;
				year=366;
			}
			if(i==oldYear){
				sumdays=day[oldMonth-1]-oldDay+1;
				for(int j=oldMonth;j<12;j++){
					sumdays+=day[j];
				}
			}else if(i==nowYear){
				for(int j=0;j<newMonth-1;j++){
					sumdays+=day[j];
				}
					sumdays+=newDay;
			}else{
				sumdays+=year;
			}
		}
		return sumdays;
	}
	public static void main(String[] args) {
		String nowString="2021年11月19日";
		String oldString="1999年12月13日";
		System.out.println(countDays(nowString, oldString));
	}
}

4.运行结果

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值