Question plage horaire

Plus d'informations
il y a 10 ans 9 mois #11225 par cylp
plage horaire a été créé par cylp
Bonjour,

Comment tester que le résultat d'un Get-date se trouve dans une plage horaire, par exemple entre le vendredi 19h et le dimanche 24h.

D'avance merci pour votre aide

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 10 ans 9 mois #11227 par Laurent Dardenne
Réponse de Laurent Dardenne sur le sujet Re:plage horaire
Salut,
une solution ici .

Tutoriels PowerShell

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 10 ans 9 mois #11232 par cylp
Réponse de cylp sur le sujet Re:plage horaire
Bonjour Laurent et merci de t'intéresser à mon pb.

J'avais vu cette réponse, mais je ne vois pas ce qu'il faudrait affecter à $value de la ligne 11
if($time -match $value)

Bon week

P.S. Je regarde le deuxième solution<br><br>Message édité par: cylp, à: 26/02/12 12:53

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 10 ans 9 mois #11233 par Laurent Dardenne
Réponse de Laurent Dardenne sur le sujet Re:plage horaire
cylp écrit:

J'avais vu cette réponse, mais je ne vois pas ce qu'il faudrait affecter à $value de la ligne 11
if($time -match $value)

Le code que tu références n'est pas dans la solution que je te proposais.
Je voulais éviter la recopie, pour éviter le bruit lors d'une recherche, tant pis :
[code:1]

Function Test-IntervalDate{
#Être après vendredi 19H00 et avant lundi 00H00.
Param ( [DateTime] $CurrentDate )
$Result=$false
$Dow=$CurrentDate.DayOfWeek
#Lundi débutant à zéro heure est tjr exclu
#Samedi et dimanche tjr inclus
if ([System.DayOfWeek]::Monday..[System.DayOfWeek]::Friday -notContains $Dow)
{ $Result=$True }
#Test l'heure de vendredi
if ($Dow -eq [System.DayOfWeek]::Friday)
{
if (($CurrentDate.Hour -ge 19) -and ($CurrentDate.Minute -gt 0))
{ $Result=$True}
}
# elseif ($Dow -eq [System.DayOfWeek]::Monday)
# {
# if (($CurrentDate.Hour -lt 0) -and ($CurrentDate.Minute -lt 0))
# { $Result=$True }
# }
$Result
}#Test-IntervalDate
[/code:1]
Quelques tests :
[code:1]
$Ve1=\&quot;10/02/2012 18:59\&quot; -as [datetime]
$Ve2=\&quot;10/02/2012 19:01\&quot; -as [datetime]
$Sa=\&quot;11/02/2012 12:00\&quot; -as [datetime]
$Di1=\&quot;12/02/2012 12:00\&quot; -as [datetime]
$Di2=\&quot;12/02/2012 23:59\&quot; -as [datetime]
$Lu=\&quot;13/02/2012 00:00\&quot; -as [datetime]
$Ma=\&quot;14/02/2012 08:29\&quot; -as [datetime]

$Ve1,$Ve2,$Sa,$Di1,$Di2,$Lu,$Ma|
Foreach {
if (Test-IntervalDate $_)
{ Write-host \&quot;La Date est concernée : $($_.tostring(\&quot;f\&quot;«»))\&quot; }
}
#Utiliser Compare-Object pour afficher les dates concernées et celles qui ne le sont pas. [/code:1]
Je ne te cache pas que j'ai tenté de généraliser ce test, mais, par manque de temps, je laisse à d'autres le soin de le faire :whistle:
A moins de trouver un code C# qui propose ce type de fonction...<br><br>Message édité par: Laurent Dardenne, à: 26/02/12 12:58

Tutoriels PowerShell

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 10 ans 9 mois #11236 par cylp
Réponse de cylp sur le sujet Re:plage horaire
Merci Laurent,

Je viens de tester quelques trucs de mon côté du genre :

$Timenow = [DateTime]::Now

if (($Timenow.DayOfWeek.value__ -eq 5) -and ($Timenow.TimeOfDay.Hours -ge 19) `
-or ($Timenow.DayOfWeek.value__ -eq 0 -and $Timenow.TimeOfDay.Hours -le 24) `
-or ($Timenow.DayOfWeek.value__ -eq 6))
{ \&quot;Nous somme bien entre vendredi 19H00 et lundi 00H00\&quot;}
else
{ \&quot;Nous ne somme pas entre vendredi 19H00 et lundi 00H00\&quot;}

Ca a l'air de fonctionner : je teste...

Connexion ou Créer un compte pour participer à la conversation.

Temps de génération de la page : 0.058 secondes
Propulsé par Kunena