3

いくつかの将来のイベントをトリガーするために、次のことを行うアルゴリズムを作成しようとしています:

  • yyyy-mm-dd" "の形式で一定量のランダムな日付を生成する
  • 各日付の時刻を " hh:mm:ss"の形式で生成します
  • これらの項目を String 配列に追加します。2013-02-25 09:45:231 つの完全な配列エントリは " "のように見えます

これを実行する方法について明確なアイデアがありません。助言がありますか?

4

3 に答える 3

8

あなたが必要とする正確なソリューション..

public class RandomDateTime {

    public static void main(String[] args) {

        SimpleDateFormat dfDateTime  = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss",Locale.getDefault());
        int year = RandomDateTime.randBetween(1900, 2013);// Here you can set Range of years you need
        int month = RandomDateTime.randBetween(0, 11);
        int hour = RandomDateTime.randBetween(9, 22); //Hours will be displayed in between 9 to 22
        int min = RandomDateTime.randBetween(0, 59);
        int sec = RandomDateTime.randBetween(0, 59);


        GregorianCalendar gc = new GregorianCalendar(year, month, 1);
        int day = RandomDateTime.randBetween(1, gc.getActualMaximum(gc.DAY_OF_MONTH));

        gc.set(year, month, day, hour, min,sec);

        System.out.println(dfDateTime.format(gc.getTime()));

    }


    public static int randBetween(int start, int end) {
        return start + (int)Math.round(Math.random() * (end - start));
    }
}

SimpleDateTime のその他の使用法については、http://docs.oracle.com/javase/6/docs/api/java/text/SimpleDateFormat.html を参照してください

于 2013-02-20T09:49:24.093 に答える
3

ランダム関数を使用してランダムタイムスタンプを取得できます。つまり、ランダムなlong値を簡単に取得して、そのタイムスタンプを次のような日付オブジェクトに変換できます。

Javaの単純なタイムスタンプから日付への変換

于 2013-02-20T09:41:32.187 に答える
1

アイデアはとてもシンプルです。Date(milis)コンストラクターと乱数ジェネレーターを使用して、ランダムな日付と時刻を生成できます。下限と上限を見つけて、その中からランダムに数字を選択する必要があります。

日付と時刻のフォーマットは非常に簡単で、DateFormatクラスを使用してこれを行うことができます。

于 2013-02-20T09:41:14.013 に答える