2

2 つの日付が与えられます。

まあ言ってみれば、

日付 dt1 = 2013 年 6 月 22 日午後 8 時

日付 dt2 = 2013 年 6 月 24 日午前 6:00

2 つの日付が与えられた場合、これら 2 つの日付の間に午前 1 時から午前 5 時までのセグメントがいくつあるかを判断したいと思います。

上記の場合、2 つのセグメントがあります。

6月23日 午前1時~午前5時

6月24日 午前1時~午前5時

したがって、答えは 2 になるはずです。

私は2つの時間の違いを得ることができます、

var time1 = new Date(dt1).getTime();
  var time2 = new Date(dt2).getTime();

  var diff = new Date(time1 - time2);

そして時、分、秒の数、

  var hours = diff.getHours();
  var minutes = diff.getMinutes();
  var seconds = diff.getMinutes();

しかし、これは予想どおりの違いしかありません。

そのためにはどのようなアプローチが必要ですか?

4

2 に答える 2

1

別のアプローチは、チェックすることです

  • time1.getHours()午前 1 時以前の場合result=1
  • time2.getHours()午前5時以降の場合resutl++
  • result+= diff.getDays() - 1
于 2013-08-05T10:58:12.647 に答える
1

コンピューター サイエンスの他のすべてと同様に、問題を解決可能な一連の小さな問題に分解します。

たとえば、この問題では、期間内に少なくとも 1 つの「セグメント」があるかどうかを単純に判断できます。ある場合は、全期間から最初の 24 時間を削除し、削除する 24 時間がある限りこのプロセスを繰り返します。途中で数えることを忘れないでください。

于 2013-08-05T10:55:15.303 に答える