コマンドラインから入力された2つの日付を比較するサンプルコードです。日付の比較には、「java.util.Calendar」クラスを使用します。
「Calendar」クラスは、任意の一時点の日付、時間の取得や日付計算を行うためのクラスです。「Calendar」クラスは抽象クラスで、インスタンスの取得は静的メソッド「getInstance()」で行います。引数なしのgetInstance()は、デフォルトのタイムゾーンとロケールのカレンダを返却します。日付の比較を行うために、コマンドラインに入力された日付を「Calendar」クラスのインスタンスに設定します。設定は「set()」メソッドに「Calendar」クラスに定義されている年、月などを示す定数と設定する値を指定して行います。日付の設定ができたら、それぞれの日付のカレンダーインスタンスを、「compareTo()」メソッドを使用して比較します。a.compareTo(b)として、正の値が返却された場合は、aがbより後の日付であることを表しています。0の場合は、同日、負の値が返却された場合はaがbより前の日付であることを表しています。「compareTo()」メソッドはJava1.5以降のメソッドですので、それ以前のバージョンでは、「after()」と「before()」メソッドを使用してください。
import java.util.Calendar;
public class CompareDate {
public static void main(String[] args) {
System.out.println("--処理開始--");
if(args.length < 2)
{
System.out.println("コマンドライン引数を指定してください");
return;
}
try
{
int year1 = Integer.parseInt(args[0].substring(0,4));
int month1 = Integer.parseInt(args[0].substring(4,6));
int date1 = Integer.parseInt(args[0].substring(6,8));
Calendar cal1 = Calendar.getInstance();
cal1.set(Calendar.YEAR,year1);
cal1.set(Calendar.MONTH,month1);
cal1.set(Calendar.DATE,date1);
cal1.set(Calendar.MINUTE,0);
cal1.set(Calendar.SECOND,0);
cal1.set(Calendar.MILLISECOND,0);
int year2 = Integer.parseInt(args[1].substring(0,4));
int month2 = Integer.parseInt(args[1].substring(4,6));
int date2 = Integer.parseInt(args[1].substring(6,8));
Calendar cal2 = Calendar.getInstance();
cal2.set(Calendar.YEAR,year2);
cal2.set(Calendar.MONTH,month2);
cal2.set(Calendar.DATE,date2);
cal2.set(Calendar.MINUTE,0);
cal2.set(Calendar.SECOND,0);
cal2.set(Calendar.MILLISECOND,0);
int result = cal1.compareTo(cal2);
if(result > 0)
{
System.out.println(args[0] + "が" + args[1] + "よりも後");
}
else if(result < 0)
{
System.out.println(args[0] + "が" + args[1] + "よりも前");
}
else
{
System.out.println("同じ日");
}
}
catch(NumberFormatException e)
{
System.out.println(e);
}
System.out.println("--処理終了--");
}
}
ちょっと一休み. Javaキーワード並び替えゲーム
画面に表示される文字列を並び替えるとJavaに関連するキーワードになります。ヒントをたよりに並び替えを行ってエンターを押してください。
ユーザ登録をしてログインするとランキングに参加できます。