找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 16989|回复: 3

[日期时间] PowerShell如何计算多个时间的和?

[复制链接]
发表于 2022-4-27 14:21:22 | 显示全部楼层 |阅读模式
如何求多个时间的和, 求路过大侠指引, 提前感谢

例如, 下面这是个多个时间的数组, 我想求他们的和
期待的结果:
00:15:15
  1. $d = @(
  2.         '00:04:30'
  3.         '00:05:25'
  4.         '00:05:20'
  5. )
复制代码
发表于 2022-4-27 16:00:02 | 显示全部楼层
第一种
  1. $d = @(
  2.         '00:04:30'
  3.         '00:05:25'
  4.         '00:05:20'
  5. )
  6. $h = $m = $s = 0
  7. $d | foreach {
  8.     $arr = $_ -split ':'
  9.     $s += [int]$arr[2]
  10.     $m += [System.Math]::Floor($s / 60); $s = $s % 60
  11.     $m += [int]$arr[1]
  12.     $h += [System.Math]::Floor($m / 60); $m = $m % 60
  13.     $h += [int]$arr[0]
  14. }
  15. '{0}:{1}:{2}' -f $h,$m,$s
复制代码
第二种
  1. $d = @(
  2.         '00:04:30'
  3.         '00:05:25'
  4.         '00:05:20'
  5. )
  6. $t = [timespan]::Zero
  7. $d | foreach { $t += [timespan]$_ }
  8. '{0}:{1}:{2}' -f $t.Hours,$t.Minutes,$t.Seconds
复制代码

评分

参与人数 1技术 +1 收起 理由
5i365 + 1 乐于分享, 技术牛X

查看全部评分

 楼主| 发表于 2022-4-27 16:23:32 | 显示全部楼层
回复 2# went


   感谢大侠帮助, 我把时间输出到变量, 回显就少0了
$ts = @(

'00:04:18'

'00:05:12'
)
$t = [timespan]::Zero
$ts | foreach { $t += [timespan]$_ }
$mmss = '{0}:{1}:{2}' -f $t.Hours, $t.Minutes, $t.Seconds
$mmss

--------------------结果
0:9:30

加了类型后, 又多了日期  
[datetime]$mmss
--------------------结果
2022-04-27 00:09:30
发表于 2022-4-27 16:41:32 | 显示全部楼层
占位符格式化{0:00}
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-20 01:52 , Processed in 0.019062 second(s), 9 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表