以30分钟为间隔将DateTimes存储到数组中

时间:2015-06-10 11:53:25

标签: c#

我的目标是以30分钟的时间间隔填充组合框24小时。 I.E - 上午12点,上午12点30分,凌晨1点,凌晨1点30分,依此类推。我需要知道如何将这些细节放入数组中。谢谢

3 个答案:

答案 0 :(得分:1)

一种方法是在一天内迭代30分钟,并将具有特定字符串表示的DateTime值添加到列表中。等;

List<string> list = new List<string>();
DateTime start = DateTime.Today;
DateTime end = DateTime.Today.AddDays(1);

while (end > start)
{
    list.Add(start.ToString("h.mmtt", CultureInfo.InvariantCulture));
    start = start.AddMinutes(30);
}

如果您想将它们作为数组获取,只需使用list.ToArray()即可获得它。 .NET Framework中的时间指示符也大多数(我没有检查所有这些)大写。这意味着,当您使用AM说明符而不是PMtt时,您将获得ampm。在这种情况下,您需要用较小的情况替换这些值。

enter image description here

答案 1 :(得分:0)

不确切地知道你的意思。我会从这样的事情开始:

private IEnumerable<Timespan> Get30MinuteIntervalls()
{
  var currentValue = new Timespan(0);
  while (currentValue <= Timespan.FromHours(24)
  {
    yield return currentValue;
    currentValue = currentValue.Add(Timespan.FromMinutes(30));
  } 
}

var values = Get30MinuteIntervalls().ToArray();

答案 2 :(得分:0)

尝试:

 var d = new DateTime();
  d = d.Date.AddHours("0").AddMinutes("0");
  for (int i = 0; i < 48; i++)
  {
        d.AddMinutes(30);
        cbo.AddItem(d.TimeOfDay.ToString());
  }