すべてのカテゴリ » Sooda!について

質問

終了

今日29日の質問ですが、12時まえの質問が〝あと6日"の表示なっています。
12時過ぎの質問は〝あと7日"です。
これってどうしてですか?

  • 質問者:12時間
  • 質問日時:2009-10-29 23:51:20
  • 0

回答してくれたみんなへのお礼

回答をありがとうございました。
教えてくださってありがとうございました。

プログラムの世界で日付計算をする場合、全てミリ秒換算で処理されます。
計算した結果から「あと何ミリ秒だから、残り何日」と変換して表示します。
この変換作業で四捨五入を行うため、どうしても誤差が生じます。
その結果、今回の様な状況になります。


例えば、10/29 11:30の質問Aと10/29 12:30の質問Bがあり、これらを10/29 23:50に見たとします。
この時の残り時間は、プログラム上では以下の様に計算されています。
(本来はミリ秒換算ですが、桁が大きくなるので秒数換算でやってます。)

質問Aの投稿時間から現時刻までの経過秒数を計算。
 10/29 23:50 - 10/29 11:30 = 44,400秒
質問締め切りまでの、残り時間を計算。(7日間 = 604,800秒)
 604,800秒 - 44,400秒 = 560,400秒
560,400秒を日数に変換。
 560,400秒 = 9,340分 = 155.67時間 = 6.49日
「あと何日」という表示にするので、小数点以下を四捨五入。
 6.49日 → 6日
よって、質問Aの残り時間は「あと6日」。

質問Bの投稿時間から現時刻までの経過秒数を計算。
 10/29 23:50 - 10/29 12:30 = 40,800秒
質問締め切りまでの、残り時間を計算。(7日間 = 604,800秒)
 604,800秒 - 40,800秒 = 564,000秒
564,000秒を日数に変換。
 564,000秒 = 9,400分 = 156.67時間 = 6.53日
「あと何日」という表示にするので、小数点以下を四捨五入。
 6.53日 → 7日
よって、質問Bの残り時間は「あと7日」。


この様に「あと何日」と大雑把な表示なので、ほんの少しの時間の差でも四捨五入で大きな誤差になるわけです。

もしも「あと何日何時間」という表示であれば、時間の小数点以下を四捨五入するので、
 質問A = 6.49日 = 6日11.76時間 = あと6日12時間
 質問B = 6.53日 = 6日12.72時間 = あと6日13時間
となります。
この様な表示であれば、今よりもグッと少ない誤差で収まるでしょう。

この回答の満足度
  
とても参考になり、非常に満足しました。回答ありがとうございました。
お礼コメント

詳しく書いていただいてありがとうございました。

並び替え:

処理するときに、どこで区切るのかの問題です。
ここの場合、12時を境にして計算するようになっているのでしょう。

===補足===
12時区切りでなく、投稿時間のようです。
つまり12時間経過すると1日減り、その後は24時間ようです。0時近くに見たのでそうなっているのでしょう。

  • 回答者:匿名希望 (質問から15時間後)
  • 0
この回答の満足度
  
とても参考になり、非常に満足しました。回答ありがとうございました。
お礼コメント

ありがとうございました。

私も気になりましたので考えてみましたが

残り日数は、7日-(「閲覧した時の日時」-「質問日時」なのですが11捨12入?
していると思われます。 (表示が日単位のため)

ですので残り時間が 6日+12時間以上までは7日←切り上げ
            6日+12時間未満は 6日と表示されるようです。←切捨て
以降1日(24時間)ごとに変わっているようです。

ご質問の例では、閲覧時間が23時台と思いますが、質問時間が11時台ですので
12時間を経過していますので、12時間?分が11捨12入され1日にカウントされて
1日引かれて6日となっているのだと思います。

ややこしいですので○日○時間にして欲しいですね。
なお、残り時間、分も同様の計算のようです。

残り時間: ○日は、○日から12時間引いた時間から12時間足した時間
       ○時間は、○時間から30分引いた時間から30分足した時間
       ○分は、○分から30秒引いた時間から30秒足した時間
と範囲があると解釈したほうがよさそうです。

  • 回答者:ちょっとピンとこない時がありますね (質問から6時間後)
  • 1
この回答の満足度
  
とても参考になり、非常に満足しました。回答ありがとうございました。
お礼コメント

丁寧にありがとうございました。

関連する質問・相談

Sooda!からのお知らせ

一覧を見る