vb.net - 用时间值填充组合框
问题描述
我想用时间值填充我的组合框,例如 (08:00, 08:10, 08:20 直到 09:50) step=10 分钟,但结果就像 (8:00, 8:10, 8:20, 8: 30, 9:-20,9:-10, 9:00, 9:10, 9:20)。我的代码没有显示像 8:40、8:50 这样的值,他还显示像 9:-20、9:-10 这样的负值。那么请问我该如何解决这个问题?
Heure_rdv.Items.Clear()
Dim nbr_minute2 As String
For i = 480 To 590 Step 10
Dim nbr_heure As Integer = cint(i / 60)
Dim nbr_minute As Integer = (i - (nbr_heure * 60))
nbr_minute2 = CStr(nbr_minute) + "0"
If ((i - (nbr_heure * 60)) = 0) Then
Heure_rdv.Items.Add(CStr(nbr_heure) + ":" + nbr_minute2)
Else
Heure_rdv.Items.Add(CStr(nbr_heure) + ":" + CStr(nbr_minute))
End If
Next
解决方案
这可以使用 linq 用更少的代码行来完成
Dim steps = Enumerable.Range(0,6)
Dim items as List(Of String) = new List(Of String)()
items.AddRange(steps.Select(Function(x) "08:" & (x * 10).ToString("D2")))
items.AddRange(steps.Select(Function(x) "09:" & (x * 10).ToString("D2")))
Heure_rdv.DataSource = items
首先,我们创建一个从 0 到 5(6 个元素)的整数列表,然后使用这些元素创建所需的字符串,将整数列表的每个元素乘以 10,并将结果转换为两位数的字符串。我们在 8 小时内执行一次,在 9 小时内执行一次。最后我们可以将组合数据源设置为字符串的结果列表。
推荐阅读
- azure-devops - Azure DevOps - 为多个利益相关者处理状态的标准做法
- typescript - 无法为 webpack/typescript/react 提供 redux - 错误 -> TS2769:没有重载匹配此调用
- swift - iOS15 Xcode 13导航栏和标签栏变黑
- java - 无法在 Jsch 中使用私钥/公钥
- docker - 当名称中包含空格的文件包含在 Docker 映像中时,Docker 推送失败
- amazon-redshift - convert_timezone 导致非空字段的数据丢失
- python-3.x - 使用 python 从 git 预提交钩子中检索参数
- angular - 在入口组件中使用指令
- amazon-web-services - Terraform EC2(根块设备加密错误未能达到目标状态)
- reactjs - 如何在没有 create-react-app 的情况下使用 create-react-library?