输入一个日期,求该日期是当年的第多少天

题目:输入一个年、月、日格式的日期,如2017 2 3,求这一天是今年的第几天?

忘了这是什么时候遇到的题目了,应该是某个ACM平台上的,难度不大,也就是传说中的“水题”。

说明一下,我在这里分享的代码和解题思路并不能保证一定是正确或者是最优解(尽最大努力,但不保证可靠交付,哈哈~,通常不是最优解,因为我并没有进行优化,各位小伙伴有好的思路也可以告诉我哈~)

话不多说,先上代码,相信大家都能看懂,如果不太明白的,文章最下方我再简单解释一下。

import java.util.Scanner;
public class day {
	static int BR [] = {31,28,31,30,31,30,31,31,30,31,30,31};
	static int RN [] = {31,29,31,30,31,30,31,31,30,31,30,31};
	//****************计算日期*********************
	public static void jisuan(int year,int month,int day){
		int result=0;	//用来存放天数
		int re=0;		//用来标志year是否为闰年
		//判断是否为闰年——————————————————
		if(year%4==0&&year%100!=0)
			re=1;
		else if(year%400==0)
			re=1;
		//——————————————————————————
		//如果是闰年
		if(re==0){
			for(int k =0;k<month-1;k++){
				result = result+BR[k];	//把本月前的所有月份日期相加
			}
			result = result + day;		//再加上本月份的日期day
		}
		//如果不是闰年
		else{
			for(int k =0;k<month-1;k++)
				result = result+RN[k];	//把本月前的所有月份日期相加
			result = result + day;		//再加上本月份的日期day
		}
		System.out.println(result);
	}
	//******************main********************
	public static void main(String[] args) {
		Scanner sc =new Scanner(System.in);
		int year = sc.nextInt();	//输入年份
		int	month = sc.nextInt();	//输入月份
		int	day = sc.nextInt();		//输入日期
		jisuan(year,month,day);		//调用jisuan()方法
	}
}

相信大家看到这应该都明白了。

思路很简单:

1、输入年、月、日。

2、判断该年是否为闰年(2月份的天数有区别)。

3、把该月份之前的所有月份的天数相加,再加上本月的天数。

就这样吧,有问题评论或者私信我,睡觉了~

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值