工作时间跨度但需要分钟00:20:00(HH:mm:ss)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了工作时间跨度但需要分钟00:20:00(HH:mm:ss)相关的知识,希望对你有一定的参考价值。

使用两个按钮来启动和停止每个按钮

start_time = Format(Date.Now, "HH:mm:ss") 

要么

stop_time = Format(Date.Now, "HH:mm:ss") 

存储时间,并在提交时使用时间跨度来计算差异,就像对待一样

Dim duration As TimeSpan = stop_time - start_time

如果我记录00:59:00分钟,我将如何减去00:20:00?,我猜这将是另一个持续时间减去00:20:00的时间跨度但不确定如何得到00:20:00 in使用它的格式。

干杯,皮特

答案

截至目前,您正在使用字符串来存储DateTime值。没有理由这样做。 应该使用字符串 - 处理DateTime结构时 - 仅用于演示。 使用TimeSpan执行这些计算。

存储操作的开始时间:

Dim StartTime As TimeSpan = Date.Now.TimeOfDay

存储操作的结束时间:

Dim StopTime As TimeSpan = Date.Now.TimeOfDay

计算持续时间:

 Dim Duration As TimeSpan = StopTime - StartTime

可以使用以下命令创建TimeSpan值:

[TimeSpan] = new TimeSpan([Hours], [Minutes], [Seconds])或: [TimeSpan] = TimeSpan.FromSeconds([Seconds]) | TimeSpan.FromMinutes([Minutes]) | .FromHours([Hours])

请注意,第一个表单接受Integer值,而第二个表单接受Double值:当以分钟为单位插入值时,将#添加到值(表示该值为Double类型)并查看会发生什么。

创建一个新的TimeSpan20分钟,并从Duration值中减去它:

Dim SubSpan As TimeSpan = New TimeSpan(0, 20, 0)
'Or
Dim SubSpan As TimeSpan = TimeSpan.FromMinutes(20.0#)

Duration -= SubSpan

使用TimeSpan.ToString()方法以人类可读的本地化形式呈现DateTime / TimeSpan值:

TextBox1.Text = Duration.ToString()

或使用特定格式:

TextBox1.Text = duration.ToString("hh:mm:ss")
TextBox1.Text = duration.ToString("hh:mm:ss", CultureInfo.InvariantCulture)
TextBox1.Text = duration.ToString("hh:mm:ss", CultureInfo.CreateSpecificCulture("en-UK"))

正如评论中所指出的那样(以及每天的许多其他问题),在项目属性中设置Option Strict On,可能是Option Explicit On和(它可能非常有用)Option Infer On将是个好主意。 在声明和使用您的类型时,这将有助于做出正确的决定。

以上是关于工作时间跨度但需要分钟00:20:00(HH:mm:ss)的主要内容,如果未能解决你的问题,请参考以下文章

SimpleDateFormat 12小时制和24小时制的区别

如何在 SQL 中将小时、分钟和秒 (HH:mm:ss) 转换为分钟和秒 (mm:ss)

将Android EditText格式化为HH:MM:SS

将字符串“7.30”转换为时间格式 hh:mm

如何使用 DateComponentsFormatter 在 HH:MM 中格式化从 00:00 开始的时间间隔偏移量

将 hh:mm:ss.00 向上舍入为 hh:mm:ss