Я нашел симпатичный маленький JSON API от Kayaposoft , который даст значение true / false, если данный день является рабочим или нет (например, воскресенье 14 апреля; isWorkDay: false
). Этот API также может соблюдать наши местные праздники, такие как Vappu в Финляндии и т. Д.
Итак, когда я пытаюсь написать сценарий в PowerShell (будучи новичком), я быстро осознал проблему с кодом ниже. Хотя код работает, он не очень практичен и зависит от каждой переменной дважды (один раз для его настройки и один раз в цикле).
Есть ли способ украсить этот код? Можно ли сделать это более практичным и / или не использовать каждую переменную дважды?
$date = (Get-Date).AddDays(11)
$jsonDate = $date.ToString('dd-MM-yyyy')
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
$jsonRequest = Invoke-WebRequest "https://kayaposoft.com/enrico/json/v2.0/?action=isWorkDay&date=$jsonDate&country=fin" | ConvertFrom-Json
while ($jsonRequest.isWorkDay -ne $true) {
$date = $date.AddDays(1)
$jsonDate = $date.ToString('dd-MM-yyyy')
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
$jsonRequest = Invoke-WebRequest "https://kayaposoft.com/enrico/json/v2.0/?action=isWorkDay&date=$jsonDate&country=fin" | ConvertFrom-Json
Write-Host $jsonDate
Write-Host $jsonRequest
}
Results:
22-04-2019
@{isWorkDay=False}
23-04-2019
@{isWorkDay=True}