用字符串的方式输入2023/3/12,但显示如下:
请问是怎么回事啊……
代码如下:
package mypackage;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner scanner = new Scanner(System.in);
//以字符串的形式获取日期,之后再分离出年月日
//例如获取字符串2023/3/12(中间无空格)
String str = scanner.nextLine();
int a = str.indexOf('/');//第一次出现“/”的下标数
int b = str.indexOf('/',a);//第二次出现“/”的下标数
String strYear = str.substring(0,a);//提取年份字符串
String strMonth = str.substring(a+1,b);//提取月份字符串
String strDay = str.substring(b+1);//提取日期字符串
int year = Integer.parseInt(strYear);
int month = Integer.parseInt(strMonth);
int m,y;
int day = Integer.parseInt(strDay);
int h;
//月份、年份对应数字:
if(month >= 3)
{
m = month;
y = year;
}
else if(month == 2)
{
m = 14;
y = year - 1;
}
else
{
m = 13;
y = year - 1;
}
int i = (int)(26 * (m + 1) / 10);
int j = (int)((y % 100) / 4);
int k = (int)(y / 100);
int l = (int)(k / 4);
h = (day + i + (y % 100) + j + l+5 * k) % 7;
switch (h)
{
case 0:
System.out.println("Saturday");
break;
case 1:
System.out.println("Sunday");
break;
case 2:
System.out.println("Monday");
break;
case 3:
System.out.println("Tuseday");
break;
case 4:
System.out.println("Wednesday");
break;
case 5:
System.out.println("Thursday");
break;
case 6:
System.out.println("Friday");
break;
}
scanner.close();
}
}