题目:输入某年某月某日,判断这一天是这一年的第几天?
程序分析:以 3 月 5 日为例,应该先把前两个月的加起来,然后再加上 5 天即本年的第几天,特殊情况,
闰年且输入月份大于
package SuanFa; import java.util.Scanner; public class Demo14 { public static void main(String[] args) { // TODO Auto-generated method stub //年积日问题 1 3 5 7 8 10 12 //31 28 31 30 31 30 31 31 30 31 30 31 fucntion(); } public static void fucntion() { Scanner sc=new Scanner(System.in); //输入年月日 System.out.println("请输入年份:"); int year=sc.nextInt(); System.out.println("请输入月份:"); int month=sc.nextInt(); System.out.println("请输入日期:"); int day=sc.nextInt(); //判断闰年 if (month>2) { if (year%4==0&&year%100!=0||year%400==0) {//判断闰年条件 day=day+1; }else { day=day; } } int _dayCount=0;//对应月份之前总天数 int dayCount=0;//总和天数 int[]monthNum={31,28,31,30,31,30,31,31,30,31,30,31};//每个月对应的时间天数 for (int i = 0; i < month-1; i++) { _dayCount=_dayCount+monthNum[i];//统计月份天数和 } dayCount=day+_dayCount; System.out.println("总天数为:"+dayCount); } }
我们可以把各个月份的天数存入数组里面,然后根据输入的月份去遍历数组,只是数组索引从0开始,比输入的月份少1,遍历时候需注意,遍历同时我们可以做一个累加
其次注意有闰年之分,在遍历之前先判断是否是闰年,然后如果闰年涉及到2月以后的月份,天数都要+1,而2月之前不变。
总体思路是先输入3.5 先把3月份以前的每个月天数和求出,这里我是放在数组里面遍历求和,也可以提前把月份对应天数和求出来,加上对应的天数即可。
3 时需考虑多加一天