我創建了一個 Powershell/XAML 應用程式,在按下按鈕時會進行 RESTAPI 呼叫,將 JSON 回應決議為應用程式前端的欄位。到目前為止一切都很好。
這些欄位將填充一個表示時間的字串,例如“1800”或“2000”等。
例如,用戶可以將其從 1800 更改為 1900。
這一切都很好,并且在后臺應用程式將使用 1900 更新要在 POST 回傳中使用的設定。
但是,還有其他設定會偏移上述時間的 90 分鐘。我不希望用戶更新每一個,這就是我嘗試以編程方式進行的原因。
但是盡我所能,我不能取一個 1800 的字串,加上 90 分鐘并使其值為 1930(而不是 1890)。
uj5u.com熱心網友回復:
您可以將輸入決議為DateTime物件(忽略日期部分),然后使用該AddMinutes方法。
$input = '1800'
$hour = $input.Substring(0,2)
$minute = $input.Substring(2,2)
$dateInputStr = "0001-01-01,${hour}:${minute}:00"
[datetime]$dateInput = ([datetime]$dateInputStr)
$dateInput = $dateInput.AddMinutes(90)
$dateInput.ToString("HHmm")
uj5u.com熱心網友回復:
使用[timespan]實體是另一種選擇:
$time = '1800'
([timespan] ($time -replace '(?<=^..)', ':') '01:30').ToString('hhmm') #->'1930'
$time -replace '(?<=^..)', ':'使用基于regex的運算子在前兩個字符之后-replace插入- 請參閱此 regex101.com 頁面以了解 regex 的說明以及對其進行試驗的能力。:由于僅以小時和分鐘表示結果,因此計算會在午夜結束,因此添加
'05:30',例如,將產生'0030'RHS 運算元不需要
[timespan]直接轉換為,因為 LHS 的資料型別 - 及其顯[timespan]式轉換 -[timespan]也將 RHS 隱式轉換為。如果要以
90分鐘為單位定義要添加的持續時間,請改用以下內容:# 90 minutes [timespan] 90 * (60 * 1e7)- 轉換一個數字以
[timespan]將該數字解釋為ticks,即 100 納秒單位。一秒有1e9(10 的 9 次方)納秒,因此一秒有1e7100 納秒單位。因此,乘以1e7給你秒,然后乘以60分鐘。
- 轉換一個數字以
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/482243.html
