例如,如果我輸入26/2/1996
,它可以工作,但如果我輸入26/3/1996
,則什麼都不會。它會顯示任何日期,只要M = 2
,我不明白爲什麼。我嘗試使用Integer.toString(int)
,我得到了相同的結果,這是我的代碼。日期方法僅在月份爲2時有效?
import java.util.Scanner;
public class DEPURANDO {
static Scanner input = new Scanner(System.in);
static String DMY() {
String F = "";
boolean salida;
int D, M, Y;
do {
salida = true;
System.out.println("");
System.out.println("DAY: ");
D=input.nextInt();
input.nextLine();
System.out.println("MONTH: ");
M=input.nextInt();
input.nextLine();
System.out.println("YEAR: ");
Y=input.nextInt();
input.nextLine();
if ((Y <= 0) || (M <= 0) || (D <= 0) || (M > 12) || (D > 31)) {
System.out.println("Error");
salida = false;
}
else {
if (M == 2 && D > 29) {
System.out.println("Error");
salida = false;
}
else if (M != 2) {
if (((M % 2) == 0) && (D > 30) && (M < 8)) {
System.out.println("Error");
salida = false;
}
if (((M % 2) != 0) && (D > 30) && (M >= 8)) {
System.out.println("Error");
salida = false;
}
}
else {
F = String.valueOf(D);
F += "/";
F += String.valueOf(M);
F += "/";
F += String.valueOf(Y);
}
}
} while (salida != true);
System.out.println("Look at the date "+F);
return F;
}
static char A = 'A';
public static void main(String[] args) {
do {
DMY();
} while(A != 'B');
}
}
調試您的代碼首先將這些結果添加到您的問題。 –
正確格式化您的代碼並檢查您的if else語句是否正確對齊。如果月份不是'2',則不會輸入最後一個'else'。 – Codebender