2012-03-22 11 views
2

私はタイムスタンプのArrayListを持っています。このArrayListをいくつかのArrayListに分割して、その日にグループ化されたHashMapに配置したいと思います。私は、次のアルゴリズムが動作する知っているタイムスタンプを別々の日に分割する必要があります

myTimestampMap['21-03-2012'] = ArrayList { myTimestamp[0], myTimestamp[1], myTimestamp[2] }; 
myTimestampMap['22-03-2012'] = ArrayList { timeStmyTimestamp[3], myTimestamp[4]}; 

- だから、14-01-2011のためのすべてのタイムスタンプは

擬似コード...など、すべてのタイムスタンプ一緒に行く29-01-2012ために、一緒に行きます -

  • 、タイムスタンプのArrayListの最初の値を取り、それは「日」だ見つけるとcurrentDayという変数にそれを割り当てる(その最初のタイムスタンプが12の場合は2012年3月午前14時26分PM、2012年3月12日に午前0時00分AMを割り当てto currentDay)。

  • タイムスタンプを繰り返し、getDay()がcurrentDay + 24時間以内にない場合は、currentDay = getDay()を(00:00に)割り当て、HashMapに新しいキーを作成し、次のタイムスタンプをTimestampに来るまで、getDay()はcurrentDay + 24時間以内にはなく、その後繰り返すだけです。

    1. 私は不明だ事は、私が言う、意味タイムスタンプ、3月12日を持っている場合である2012年午後04時57分PM、私は2012年3月12日午後12時00分AMを意味していることから、タイムスタンプ(currentDay)を導出する必要があります。どうすればいい?
    2. また、指定されたタイムスタンプがcurrentDayタイムスタンプの24時間以内にあるかどうかを確認する必要があります。どうすればいい?日付を変換する場合は、タイムゾーンの問題(あなたが持っているなど、すべての時間はUTCであり、あなたは、うるう秒を気にしない!)...

      を無視できると仮定すると

+1

あなたはどのタイムゾーンに興味がありますか? –

+0

GMT。私は他のタイムゾーンについて心配する必要はありません。 – csss

答えて

1

と(epoch time形式では1/1/1970 00:00:00を使用しています)、秒数を秒数で割った値を整数に変換して日数を表す整数に変換することができます。

特定のタイムスタンプが同じ日にあるかどうかを確認するには、値/ 86400を単純に比較します。

+1

モジュロ除算ではありません。ちょうど*を単位/日で割ります。 –

+0

ok歓声、それはショットメイトを与えるつもり – csss

+0

@JonSkeet良い点は、ポストを更新しました。 –