【问题标题】:AddHour / AddMinute store within a ListItemListItem 中的 AddHour / AddMinute 存储
【发布时间】:2010-12-06 23:07:35
【问题描述】:

我正在使用 c#.net

我从数据库中提取了两次(“最早开始时间”和“最晚结束时间”)。

我想循环并在列表中添加“中间”时间。

例子

  • 最早开始时间 - 12:00
  • 12:30
  • 13:00
  • 13:30
  • 14:00
  • 14:30
  • 最晚结束时间 - 15:00

我找到了一些代码,但由于信息是从数据库中提取的,因此开始时间可能是 12:00/12:30 等。我不知道如何调整下面的代码以期望这两个时间(完整小时/半小时)

int i = -1; 

List<string> appointmentTimes = new List<string>();

while (DateTime.Today.AddHours(firstTime).AddMinutes(i * 30).Hour < lastTime)
{
appointmentTimes.Add(DateTime.Today.AddHours(7).AddMinutes(30*(++i)); );
}

我是否必须将 firstTime 分成几小时/分钟?

例子

while (DateTime.Today.AddHours(firstTimeHour).AddMinutes(firstTimeMintues, i * 30).Hour < lastTime)
{
appointmentTimes.Add(DateTime.Today.AddHours(7).AddMinutes(30*(++i)); );
}

提前感谢您的帮助。

克莱尔

【问题讨论】:

    标签: c# list while-loop


    【解决方案1】:

    感谢贾斯汀让我走上正轨。

                // ---- Create a new list
                List<string> appointmentTimes = new List<string>();
    
                // ---- If information is pulled back
                if (myResults != null)
                {
                    TimeSpan time = TimeSpan.FromMinutes(30);
    
                    DateTime FirstTime = Convert.ToDateTime(myResult.firstStart);
                    DateTime LatestTime = Convert.ToDateTime(myResult.lastEnd);
    
                    while (FirstTime < LatestTime )
                    {
                        appTimes.Add(FirstTime .ToString());
                        FirstTime += time;
                    }
                }
    

    【讨论】:

      【解决方案2】:

      抱歉,这只是一个提示而不是答案,但使用 TimeSpan 循环可用时间可能会更容易。

      使用 TimeSpan.FromHours 和 TimeSpan.FromMinutes 获取 TimeSpan,然后将其增加 30 并将其添加到列表中,类似于使用 TimeSpan.Hours 和 TimeSpan.Minutes 的方式。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-01-04
        • 1970-01-01
        • 1970-01-01
        • 2021-11-18
        • 2017-03-13
        • 1970-01-01
        • 2013-04-12
        • 2011-02-22
        相关资源
        最近更新 更多