あと一歩だと思うのですが、思いつきません。助けてください。
Javaで、コマンドライン引数から適当な年月日を入力し、今日の日付と比べて過去か未来か今日か、を判断するプログラムを作成しています。
現在以下のコードができています。
import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; import java.util.Calendar; class dateCheckProgram{ public static void main(String[] args) { SimpleDateFormat format = new SimpleDateFormat("yyyy/MM/dd"); Calendar calendar = Calendar.getInstance(); Calendar nowCalendar = Calendar.getInstance(); String date = args[0]; if (args.length > 0){ try { calendar.setTime(format.parse(date)); int nowYear = nowCalendar.get(Calendar.YEAR); int nowMonth = nowCalendar.get(Calendar.MONTH) + 1; int nowDay = nowCalendar.get(Calendar.DATE); nowCalendar.set(nowYear, nowMonth, nowDay); int diff = calendar.compareTo(nowCalendar); if (diff == 0){ System.out.println(date + "は今日です"); } else if (diff > 0){ System.out.println(date + "は未来です"); } else { System.out.println(date + "は過去です"); } } catch (ParseException e){ System.out.println("入力値がyyyy/mm/dd形式ではありません"); }
『nowCalendar.set』で設定した今日の日付が、時間・分・秒まで入ってしまっているため、きちんとした判定ができないようです。
調べたところ、http://qiita.com/kazuhirokomoda/items/e5898aa9b6855adf7433にほぼ同じ対策が掲載されていました。
が、『import org.apache.commons.lang.time.DateUtils;』が自分の環境で使えないようです。
DateUtilsを使わないで判断する方法はないでしょうか。
教えてくださると助かります。
よろしくお願い致します。

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。