我正在尝试实现一个日期系统,它不可避免地显示明天、日期、月份和年份。
我遇到的问题是,if语句中的一个总是返回true,而后面的语句总是返回false。
下面是我代码的一部分:
public class dateVerification {
int tomorrowDay = 0;
int tomorrowMonth = 0;
int tomorrowYear = 0;
int day = 0;
int month = 0;
int year = 0;
public void date() {
Scanner myScanner = new Scanner(System.in);
System.out.println("Enter the day");
day = myScanner.nextInt();
System.out.println("Enter the month");
month = myScanner.nextInt();
System.out.println("Enter the year");
year = myScanner.nextInt();
switch (month) {
case 1:
if (month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10) {
if (day < 31) {
tomorrowDay = day + 1;
} else {
tomorrowDay = 1;
tomorrowMonth = month + 1;
}
}
break;返回true的行是:
if (month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10)其他一切都是假的,即我的案例2陈述
if (month == 4 || month == 6 || month == 9 || month == 11)有人能解释一下这件事吗?
发布于 2015-03-07 18:26:23
您正在测试month字段。
在第1种情况下,月份总是1。
switch (month) {
case 1: //mount = 1 !!
if (month == 1 ||...
//
}发布于 2015-03-07 18:28:27
在java获得明天的最简单的方法是
public Date nextDate(Date currentDate) {
Calendar c = Calendar.getInstance();
c.setTime(currentDate);
c.add(Calendar.DATE, 1);
return c.getTime();
}发布于 2015-03-07 18:29:33
代码中的问题出现在以下部分:
} else {
tomorrowDay = 1;
tomorrowMonth = month + 1;因为你想在31天的时候增加月份,所以你应该把它改为
} else {
tomorrowDay = 1;
month = month + 1;对于要增加和退出循环的月份,请不要离开它,因为月份(这就是您正在检查的月份)
https://stackoverflow.com/questions/28918395
复制相似问题