问题描述
输入一个年月日,格式如2013/5/15,判断这一天是这一年的第几天。
import java.util.Scanner;
public class Test3_2_1 {
static int day(int y,int m,int d)
{
int sum=0;
switch(m-1)
{
case 11:sum+=30;
case 10:sum+=31;
case 9:sum+=30;
case 8:sum+=31;
case 7:sum+=31;
case 6:sum+=30;
case 5:sum+=31;
case 4:sum+=30;
case 3:sum+=31;
case 2:sum+=28;
case 1:sum+=31;
}
if (m>2)
if (y%4==0&&y%100!=0 || y%400==0)
sum++;
sum+=d;
return sum;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc = new Scanner(System.in);
System.out.println("请输入日期,例如(2018/5/9)");
String s=sc.next();
String[] str=s.split("/");
int y=Integer.parseInt(str[0]);
int m=Integer.parseInt(str[1]);
int d=Integer.parseInt(str[2]);
// for (int i=0;i<str.length;i++)
// System.out.println(str[i]);
System.out.println("day="+day(y,m,d));
sc.close();
}
}
优化后
import java.util.Scanner;
public class Test3_2_2 {
static int day(int y,int m,int d)
{
int sum=0;
int[] a= {31,28,31,30,31,30,31,31,30,31,30,31};
for (int i=0;i<m-1;i++)
sum+=a[i];
if (m>2)
if (y%4==0&&y%100!=0 || y%400==0)
sum++;
sum+=d;
return sum;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc = new Scanner(System.in);
System.out.println("请输入日期,例如(2018/5/9)");
String s=sc.next();
String[] str=s.split("/");
int y=Integer.parseInt(str[0]);
int m=Integer.parseInt(str[1]);
int d=Integer.parseInt(str[2]);
// for (int i=0;i<str.length;i++)
// System.out.println(str[i]);
System.out.println("day="+day(y,m,d));
sc.close();
}
}