因此,我必須編寫一個代碼,用於從用戶獲取2個日期(月/日/年),並且如果FIRST日期小於第二個日期,則返回「true」。在任何其他情況下,日期將是「假」或「他們是相同的」。我被告知我不能要求用戶使用指定的格式(即mm/dd/yyyy),而應該關注「/」。如何比較已變成整數的字符串的值(大於/小於)?
問題是,無論我放什麼東西,它總是返回「它們是相同的」答案。任何提示和建議都非常感謝!我只是一名初學者程序員,所以我不確定有什麼問題。
下面的代碼:
import java.util.Scanner;
public class Mari_WS15IsDateEarlier {
public static void main (String[] args) {
//initial variables, asks for variable input and determines month/day/year
Scanner dateInput = new Scanner(System.in);
String answr;
//splits string input into month, day and year
System.out.println("Enter a month, day, and year(separate with a slash) :");
String date1 = dateInput.next();
String[] splitStrings = date1.split("/");
String month1 = splitStrings[0];
String day1 = splitStrings[1];
String year1 = splitStrings[2];
System.out.println("Enter another month, day, and year (separate with a slash) :");
String date2 = dateInput.next();
String[] splitStrings2 = date1.split("/");
String month2 = splitStrings[0];
String day2 = splitStrings[1];
String year2 = splitStrings[2];
//turns string into integer for testing (greater than/less than)
int mn1 = Integer.parseInt(month1);
int mn2 = Integer.parseInt(month2);
int dy1 = Integer.parseInt(day1);
int dy2 = Integer.parseInt(day2);
int yr1 = Integer.parseInt(year1);
int yr2 = Integer.parseInt(year2);
//Determine if the set of variables is a geometric sequence
if (yr1 < yr2) {
answr = "true";
}
else if ((yr1 == yr2)&&(mn1 < mn2)) {
answr = "true";
}
else if ((mn1 == mn2)&&(dy1 < dy2)) {
answr = "true";
}
else if (dy1 == dy2) {
answr = "ERROR: Dates are identical.";
}
else {
answr = "false";
}
//Prints out the answer
System.out.println(answr);
這是棘手的,如果你不能強加一些* *對用戶的格式限制,否則你怎麼知道「10/03/2015」是3月10日還是10月3日? – nnnnnn
您是否嘗試在每個「if-else」之前和之內打印您嘗試比較的整數值? – ahmed
啊,抱歉不清楚。我們將用預期的代碼進行編碼,用戶將首先輸入月份,然後是一天,然後是一年,用斜線分隔。 我們不允許做的是要求他們做一個指定的數字格式(例如在一位數月前/日之前放一個零,他們可以放入2011年3月3日和2011年3月3日)。 – Mari