/** date1がdate2より早く来たかどうかを報告します。たとえば、isEarlierThan( "12-01-2015"、 "02-15-2017")はtrueですが、isEarlierThan( "10-11-2016"、 "10-11-2016")およびisEarlierThan( "09-09 -1967 "、" 02-15-1933 ")はfalseです。 */オブジェクトを使用せずに2つの日付を比較するにはどうすればよいですか?
public static boolean isEarlierThan (String date1, String date2)
{
if(date1.compareTo(date2) > 0) {
return true;
}
else if (date1.compareTo(date2) <= 0) {
return false;
}
else {
return true;
}
}
このコードは、時にはしかし、誰常に動作します。私はテストケースを実行して失敗します。以下のテストケースがあります。
public void testIsEarlierThan()
{
assertTrue(isEarlierThan("12-01-2015", "02-15-2017"));
assertFalse(isEarlierThan("10-11-2016", "10-11-2016"));
assertFalse(isEarlierThan("09-09-1967", "02-15-1933"));
assertTrue(isEarlierThan("02-14-2017", "02-15-2017"));
}
私がテストケースを実行すると、最初の2つだけが動作し、3番目のテストケースでは停止します。しかし、何が間違っているのか分かりません。もし最初の作品がうまくいけば3番目の作品はうまくいかないでしょうか?前もって感謝します!
これは文字列比較の仕組みであるため、第3の例では「9」は「2」の後になります –
なぜですか? 'Date.compareTo()'がすでに動作していますか?これはしない?できない?オブジェクトを使うことに対するあなたの嫌悪感は何ですか? – EJP
ああ.... 12時は02後ですね。 – SassyRegards201