“mm” stand’s for minutes
“MM” stand’s for month
Ok i’ ve found for the date, it’s a bad mistake !
After looking this script :
[String]$Start = $DateStart $StartTimeJ += (New-TimeSpan -Start ($DateStart.Split(" ")[0]) -End $DateStart).TotalSeconds $StopTimeJ += (New-TimeSpan -Start $DateStart -End $DateStop).TotalSeconds
The Variable is not using correctly there is a melting pot with this variable ($Start and $DateStart and $DateStop)
Now it’s ok :
$Start = "03/02/2020 16:00" $Stop = "04/02/2020 06:00" $StopHebdo = "07/02/2020 06:00" $StartTimeJ = @() $StopTimeJ = @() $NbJourDiff = (New-TimeSpan -start $Start -End $StopHebdo).Days Write-Host "DiffJour: $JourDiff" $StartTime= "" $i = 0 While($i -le $NbJourDiff){ Write-Host "" Write-Host "Value of i : $i" Write-Host "StartTime - before AddDays: $StartTime" $StartTime = (Get-Date $Start).AddDays($i).ToString('dd/MM/yyyy HH:mm') $StopTime = (Get-Date $Stop).AddDays($i).ToString("dd/MM/yyyy HH:mm") Write-Host "StartTime - After AddDays: $StartTime" Write-Host "StopTime - After AddDays: $StopTime" Write-Host " " $StartTimeJ += (New-TimeSpan -Start ($StartTime.Split(" ")[0]) -End $StartTime).TotalSeconds Write-Host "StartTime: $StartTimeJ" $StopTimeJ += (New-TimeSpan -Start $StartTime -End $StopTime).TotalSeconds Write-Host "StoptTimeJ: $StopTimeJ" $i++ }
Result:
DiffJour: 3 Value of i : 0 StartTime - before AddDays: StartTime - After AddDays: 03/02/2020 16:00 StopTime - After AddDays: 04/02/2020 06:00 StartTime: 57600 StoptTimeJ: 50400 Value of i : 1 StartTime - before AddDays: 03/02/2020 16:00 StartTime - After AddDays: 04/02/2020 16:00 StopTime - After AddDays: 05/02/2020 06:00 StartTime: 57600 57600 StoptTimeJ: 50400 50400 Value of i : 2 StartTime - before AddDays: 04/02/2020 16:00 StartTime - After AddDays: 05/02/2020 16:00 StopTime - After AddDays: 06/02/2020 06:00 StartTime: 57600 57600 57600 StoptTimeJ: 50400 50400 50400 Value of i : 3 StartTime - before AddDays: 05/02/2020 16:00 StartTime - After AddDays: 06/02/2020 16:00 StopTime - After AddDays: 07/02/2020 06:00 StartTime: 57600 57600 57600 57600 StoptTimeJ: 50400 50400 50400 50400
But if you have advice for another way to do this command i’m listening to you
Anyway Again thx a lot Olaf!
Sam i have note this idea for other things, so thx to you
Its so beautifull my script but doesn’t work becayse i have no reference to day…i’m fucked.
I need to see how to do…
OK,just for information, this is the script working good
$Start = “03/02/2020 16:00”
$Stop = “04/02/2020 06:00”
$StopHebdo = “07/02/2020 06:00”
$StartTimeJ = @(" “,” “,” “,” “,” “,” “,” “)
$StopTimeJ = @(” “,” “,” “,” “,” “,” “,” ")
$NbJourDiff = (New-TimeSpan -start $Start -End $StopHebdo).Days
Write-Host “DiffJour: $JourDiff”
$StartTime= “”
$i = 0While($i -le $NbJourDiff){
Write-Host “”
Write-Host “Value of i : $i”
Write-Host “StartTime - before AddDays: $StartTime”
$StartTime = (Get-Date $Start).AddDays($i).ToString(‘dd/MM/yyyy HH:mm’)
$JourStartTime = (Get-Date $StartTime).DayOfWeek
Write-Host “DaysofWeek: $JourStartTime”
Switch($JourStartTime){
Sunday{$StartTimeJ[0] += (New-TimeSpan -Start ($StartTime.Split(" “)[0]) -End $StartTime).TotalSeconds}
Monday{$StartTimeJ[1] += (New-TimeSpan -Start ($StartTime.Split(” “)[0]) -End $StartTime).TotalSeconds}
Tuesday{$StartTimeJ[2] += (New-TimeSpan -Start ($StartTime.Split(” “)[0]) -End $StartTime).TotalSeconds}
Wednesday{$StartTimeJ[3] += (New-TimeSpan -Start ($StartTime.Split(” “)[0]) -End $StartTime).TotalSeconds}
Thursday{$StartTimeJ[4] += (New-TimeSpan -Start ($StartTime.Split(” “)[0]) -End $StartTime).TotalSeconds}
Friday{$StartTimeJ[5] += (New-TimeSpan -Start ($StartTime.Split(” “)[0]) -End $StartTime).TotalSeconds}
Saturday{$StartTimeJ[6] += (New-TimeSpan -Start ($StartTime.Split(” ")[0]) -End $StartTime).TotalSeconds}
}
$StopTime = (Get-Date $Stop).AddDays($i).ToString(“dd/MM/yyyy HH:mm”)
$JourStopTime = (Get-Date $StopTime).DayOfWeek
Switch($JourStopTime){
Sunday{$StopTimeJ[0] += (New-TimeSpan -Start $StartTime -End $StopTime).TotalSeconds}
Monday{$StopTimeJ[1] += (New-TimeSpan -Start $StartTime -End $StopTime).TotalSeconds}
Tuesday{$StopTimeJ[2] += (New-TimeSpan -Start $StartTime -End $StopTime).TotalSeconds}
Wednesday{$StopTimeJ[3] += (New-TimeSpan -Start $StartTime -End $StopTime).TotalSeconds}
Thursday{$StopTimeJ[4] += (New-TimeSpan -Start $StartTime -End $StopTime).TotalSeconds}
Friday{$StopTimeJ[5] += (New-TimeSpan -Start $StartTime -End $StopTime).TotalSeconds}
Saturday{$StopTimeJ[6] += (New-TimeSpan -Start $StartTime -End $StopTime).TotalSeconds}
}
Write-Host “StartTime - After AddDays: $StartTime”
Write-Host “StopTime - After AddDays: $StopTime”
Write-Host " "
Write-Host “StartTimeJ: $StartTimeJ”
Write-Host “StoptTimeJ: $StopTimeJ”
$i++
}
Have a good evening you both
No does’nt work…
Yes yes it’s work
See you