2

時間範囲から 1 時間ごとのオブジェクト リストを作成したいと考えています。

c# に python pandas.timerange のような関数はありますか?

pandas.time_range("11:00", "21:30", freq="30min")
4

2 に答える 2

5

オプションとして、MoreLInq Generateメソッドを利用します。

//variables used in both examples
var start = TimeSpan.FromHours(11);
var end = TimeSpan.FromHours(21).Add(TimeSpan.FromMinutes(30));

MoreEnumerable.Generate(start, span => span.Add(TimeSpan.FromMinutes(30)))
              .TakeWhile(span => span <= end)

「ネイティブ」Linq クエリは少し見にくいです。

Enumerable.Range(0, int.MaxValue)
          .Select(multiplier => start.Add(TimeSpan.FromMinutes(30 * multiplier)))
          .TakeWhile(span => span <= end)

両方のクエリが生成します。

11:00:00 
11:30:00 
12:00:00 
12:30:00 
13:00:00 
13:30:00 
14:00:00 
  ...
21:00:00 
21:30:00 
于 2013-10-31T15:22:43.623 に答える
1

開始/終了時間とその間の分数を取る関数を次に示します。

public IEnumerable<DateTime> GetTimeRange(DateTime startTime, DateTime endTime, int minutesBetween)
{
   int periods = (int)(endTime - startTime).TotalMinutes / minutesBetween;  
   return Enumerable.Range(0,periods+1)
                    .Select (p => startTime.AddMinutes(minutesBetween * p));
}

関数を呼び出すときに、最初の文字列を解析できます。

var times = GetTimeRange(DateTime.Parse("11:00"),DateTime.Parse("21:30"),30);
于 2013-10-31T15:31:22.443 に答える