1.给定一个日期,输出这个日期是该年的第几天。输入的日期格式为YYYY/MM/DD。
2.首先将输入的日期定义为String类型。
3.然后用“/”对字符串进行分割:
String[] dateArray = dateStr.split("/");
输入的“
YYYY/MM/DD”就成了“
YYYY”“MM”“DD”
4.然后将分割出来的字符命名然后转换成整型:
String yearStr = dateArray[0];
String monthStr = dateArray[1];
String dayStr = dateArray[2];
// 给被分出来的字符串按顺序命名
int year = Integer.parseInt(yearStr);
int month = Integer.parseInt(monthStr);
int day = Integer.parseInt(dayStr);
// 将字符串转换成int类型
5.然后接下来就开始计算:
int i = 30;
int sum = (month - 1) * i + day;
思考出计算的基本思路然后判断平年跟闰年:
if (((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) && month > 2) {
sum++;
}
6.判断好了之后再判断最终输出内容:
switch (month) {
case 1:
System.out.println(sum);
break;
case 2:
System.out.println(sum + 1);
break;
case 3:
System.out.println(sum - 1);
break;
case 4:
System.out.println(sum);
break;
case 5:
System.out.println(sum );
break;
case 6:
System.out.println(sum+1);
break;
case 7:
System.out.println(sum + 1);
break;
case 8:
System.out.println(sum+2);
break;
case 9:
System.out.println(sum + 3);
break;
case 10:
System.out.println(sum+3);
break;
case 11:
System.out.println(sum + 4);
break;
case 12:
System.out.println(sum+4);
break;
AC代码:
import java.*;
import java.util.*;
public class index7 {
public static void main(String[] args) {
Scanner cin = new Scanner(System.in);
String dateStr;
while (cin.hasNext()) {
dateStr = cin.nextLine();
String[] dateArray = dateStr.split("/");
// 根据 “/”符号 将字符串组分隔成单个字符串
String yearStr = dateArray[0];
String monthStr = dateArray[1];
String dayStr = dateArray[2];
// 给被分出来的字符串按顺序命名
int year = Integer.parseInt(yearStr);
int month = Integer.parseInt(monthStr);
int day = Integer.parseInt(dayStr);
// 将字符串转换成int类型
int i = 30;
int sum = (month - 1) * i + day;
if (((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) && month > 2) {
sum++;
}
switch (month) {
case 1:
System.out.println(sum);
break;
case 2:
System.out.println(sum + 1);
break;
case 3:
System.out.println(sum - 1);
break;
case 4:
System.out.println(sum);
break;
case 5:
System.out.println(sum );
break;
case 6:
System.out.println(sum+1);
break;
case 7:
System.out.println(sum + 1);
break;
case 8:
System.out.println(sum+2);
break;
case 9:
System.out.println(sum + 3);
break;
case 10:
System.out.println(sum+3);
break;
case 11:
System.out.println(sum + 4);
break;
case 12:
System.out.println(sum+4);
break;
}
}
}
}