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了。