根据日期来求一年中的第几天

发布时间 2024-01-11 20:44:39作者: 浮光跃迁
 1 package excel;
 2 import java.util.Scanner;
 3 public class code14 {
 4     public static void main (String[]args){
 5         Scanner reader =new Scanner(System.in);
 6         System.out.println("请输入日期:");
 7         String  date=reader.next();
 8         String []inPut=date.split("_");
 9 
10         int years= Integer.parseInt(inPut[0]);
11         int monuth=Integer.parseInt(inPut[1]);
12         int date1=Integer.parseInt(inPut[2]);
13         int []amount={31,28,31,30,31,30,31,30,31,30,31,30};
14         if (years % 400 == 0 || (years % 4 == 0 && years % 100 != 0));{
15             amount[1]+=1;
16         }
17         int days=0;
18         for (int i =0;i<=monuth-1;i++){
19              days += amount[i];
20         }
21         System.out.println("这是这一年的第"+(days+date1)+"天");
22 
23 
24     }
25 }

先还是引入一个类来从键盘来获得一个日期,这个日期的的格式是xxxx_xx_xx,我们用String来承接它 

后面用一个数组来来承接一个把上面的日期字符串分开,那个Split是一个方法(她的作用就是把字符串根据一个符号分隔开来,但它的数据类型还是String类型的,简单来说就是把一个字符串分解成为多个字符串)

然后我们定义多个变量来承接字符串中的数据,一个是年份,一个是月份还有一个是天数

Integer.parseInt()是把一字符型的数据转成整数型的数据,j这样我们就可以用它来进行计算了

我们看年份,如果是平年那么2月份的时候就是28天,如果是闰年2月份就是29天,那我们就先用if语句来判断年份到底是不是闰年。闰年能够被400整除或者是能被4整除但不能被100整除,那就是闰年

定义一个变量给它赋值days他是用来接受月份之前的天数,举个例子来说,如果是3月21号,那一月和二月是已经过了的,那我们就要把他们的天数相加起来,然后在和我们之前定义的那个天数的变量相加,

这个date1就是3月后面的21天的数值,得出的值就是我们这个一个日期在我们这个你中的第几天。

而前面的那个amount的那个数组的是用来表示每一个月份的天数的,我们通过循环来把天数相加就OK了。