下面是我的程序,当我输入相关的月份、日期和年份时,它返回错误的日期名称。
我在这里缺少什么?
我的程序
import java.util.Calendar;
import java.util.Locale;
import java.util.Scanner;
public class TimeTest {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
String month = in.next();
String day = in.next();
String year = in.next();
System.out.println(getDay(day, month, year));
}
private static String getDay(String day, String month, String year) {
Calendar calendar = Calendar.getInstance();
calendar.set(Integer.parseInt(year), Integer.parseInt(month), Integer.parseInt(day));
return calendar.getDisplayName(Calendar.DAY_OF_WEEK, Calendar.LONG, Locale.getDefault());
}
}
Run Code Online (Sandbox Code Playgroud)
输出:
09
24
2018
Wednesday
Run Code Online (Sandbox Code Playgroud)
它应该返回“星期一”,因为那是当天。
假设它是9月,您将09作为月份传递,但实际上就日历类而言,它是8 月,因为月份是从日历类中开始的,依此类推。00(Jan), 01(Feb)...
因此,为了获得正确的输出,您需要通过
08 // September Month not August
24
2018
Run Code Online (Sandbox Code Playgroud)
这是您的运行代码
| 归档时间: |
|
| 查看次数: |
1293 次 |
| 最近记录: |