首页 > 解决方案 > 如何在 vb.net 中对整数和日期时间之间的日期时间小时进行求和

问题描述

我有一个 datagridview 列如下:

| 持续时间(小时)| 日期时间1 | 日期时间2 |

| 12 | 2020-8-10 8:00 | ? |

| 28 | 2020-8-13 8:00 | ? |

Datetime2的值是DurationDatetime1之间的小时数之和,格式应为“yyyy-mm-dd H:mm”。是否可以进行操作并将其放在Datetime2列中?

注意:可用时间是8.00-16.00,所以如果总和的结果在16.00以上,日期会增加,从8.00开始

我想要的结果是这样的:

| 持续时间(小时)| 日期时间1 | 日期时间2 |

| 12 | 2020-8-10 8:00 | 2020-8-11 12:00 |

| 27 | 2020-8-13 8.00 | 2020-8-17 11:00 |

任何帮助表示赞赏,谢谢

标签: vb.netvisual-studiodatetimedatagridviewdatetimepicker

解决方案


循环遍历您的数据源,如果第一列的类型不是 Double,则使用 Double.TryParse(文档),如果第二列的类型不是 DateTime,则使用 DateTime.TryParse(文档),使用 DateTime.AddHours(文档传递值从第 1 列到第 2 列的值。

这是一个例子:

For Each row In DataGridView1.Rows
    If (Not row.IsNewRow) Then
        Dim hoursToAdd As Double
        Dim dateFrom As DateTime
        If (Double.TryParse(rows.Cells(0).Value, hoursToAdd) AndAlso DateTime.TryParse(rows.Cells(1).Value, dateFrom)) Then
            Dim dateTo = dateFrom.AddHours(hoursToAdd)
            row.Cells(2).Value = dateTo.ToString("yyyy-mm-dd H:mm")
        End If
    End If
Next

推荐阅读