0

我正在使用 C#。我需要每隔 15 分钟(从早上 7 点到晚上 10 点)在数据库中插入时间段。我用过这段代码:

          for (int i = 0; i < 61; i++){
          TimeSpan curtime = new TimeSpan(7, y, 00);
           y=y+15;}

但这会在 24 小时内返回我的插槽,即从 7:00:00 到 22:00:00。我怎样才能改变这个?

4

4 回答 4

1

数据库中的DateTime 列(对于 SQL Server)存储为一对四字节数值,其中前 4 个字节是从特定基准时间 (1900/1/1) 算起的天数,后四个字节是从午夜开始的毫秒数。
因此,当您谈论 时format,这是您的日期时间值的显示格式,您可以通过它的外观获得它,因为存在从内部格式到我们可以理解的字符串的转换。但在数据库中,日期时间始终以其内部格式存储

因此,为了节省您的时间段,无需准备特殊格式,只需使用当前日期并在每个循环中增加 15 分钟,然后让数据库存储它认为合适的时间

 List<DateTime> slots = new List<DateTime>();
 DateTime dt = new DateTime(2013, 7, 26, 7, 0, 0);
 for (int i = 0; i < 61; i++)
 {
      // Save in a list
      slots.Add(dt);

      // Calculate next slot
      dt = dt.AddMinutes(15);
 }
 // Save all the slots to the database
 SaveSlots(slots);

显示日期时间

DataTable slots = GetSlotsFromDataBase();
foreach(DataRow r in slots.Rows)
   Console.WriteLine(Convert.ToDateTime(r[0]).ToString("hh:mm tt");
于 2013-07-26T09:29:56.817 回答
0

你可以使用类似的东西

Datetime.Now.AddMinutes(15)

用你的变量替换 DateTime.Now

于 2013-07-26T08:31:51.060 回答
0

ATimeSpan是持续时间,如果要以 12 小时格式格式化输出,则应使用DateTime(和DateTime.ToString(String)方法)

于 2013-07-26T08:32:43.597 回答
0

DateTime http://msdn.microsoft.com/en-us/library/system.datetime.aspx结构会有所帮助,因为 TimeSpan http://msdn.microsoft.com/en-us/library/system.timespan。 aspx表示时间间隔而不是一天中的时间

否则试试这个

var time = DateTime.ParseExact("17:00", "HH:mm", null).ToString("hh:mm tt");
于 2013-07-26T08:30:33.183 回答