Question [Concours Scripting] get-businessday (Validé !)

Plus d'informations
il y a 16 ans 6 mois #945 par Jacques Barathon
Un petit script pour dire que j'en aurai posté au moins un aujourd'hui :)

[code:1]
# get-businessday.ps1
#
# Date: 14/09/2007
# Auteur: janel
#
# Syntaxe:
#
# get-businessday [-before | -after] [<date>]
#
# Retourne le jour ouvré précédant ou suivant la date
# passée en paramètre. Si aucune date n'est fournie,
# prend la date du jour comme date de référence.
#
# Exemple:
#
# PS> get-businessday -before \"09/14/2007\"
#
# jeudi 13 septembre 2007 00:00:00
#
# A noter: si la date est fournie en tant que chaîne de
# caractères, elle doit être au format US \"MM/JJ/AAAA\".
#

param([switch]$before, [switch]$after, [DateTime]$date = [DateTime]::Now)

# Erreur si les deux switchs sont spécifiés:

if ($before -and $after)
{
throw \"On ne peut pas spécifier -before et -after ensemble!\"
}

# Erreur si aucun switch n'est spécifié:

if (!$before -and !$after)
{
throw \"Il faut spécifier -before ou -after!\"
}

# Détermination du mode de décalage selon le switch:

$offset = 1
$before -and ($offset = -1) > $null

# Calcul du jour ouvré demandé:

do
{
$date = $date.AddDays($offset)
}
until ((1..5) -contains $date.DayOfWeek.value__)

# Retour de la date demandée:

$date[/code:1]
Ce script est venu au départ pour aider à résoudre un problème de planification de sauvegarde, mais on pourra sans doute lui trouver d'autres usages.

A noter également la syntaxe << $before -and ($offset = -1) > $null >> que j'avais décrite sur mon blog il y a quelques mois. C'est une façon d'éviter des tests if (...) {...} parfois un peu trop verbieux à mon goût, sans non plus tomber trop dans un raccourci trop abscons. Qu'en pensez-vous?

Bon, en même temps, on est quand même vendredi soir... :)

Janel<br><br>Message édité par: Arnaud, à: 24/09/07 23:01

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

Plus d'informations
il y a 16 ans 6 mois #946 par Arnaud Petitjean
Super un script de plus pour Janel ! Très pratique en effet pour déterminer les dates de sauvegardes.

Par contre il ne serait pas inutile que tu nous indiques un lien vers ton billet pour ce qui est de ton tour de magie avec -and &gt;$null. Car ça m'a fait tourner la :silly: !

Arnaud

MVP PowerShell et créateur de ce magnifique forum :-)
Auteur de 6 livres PowerShell aux éditions ENI
Fondateur de la société Start-Scripting
Besoin d'une formation PowerShell ?

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

Plus d'informations
il y a 16 ans 6 mois #947 par Jacques Barathon
Ah ben zut, en cherchant dans les archives de mon blog je réalise que je n'ai pas fait de billet là-dessus. J'ai dû commencer un billet et l'avoir oublié dans mes brouillons, j'en ai quelques-uns comme ça, en jachère.

Bon, hé bien il ne me reste plus qu'à le faire, ce billet. Il ne s'agit pas tellement d'un tour de magie, mais simplement d'une opération booléenne sur deux expressions. Et un peu comme sous CMD avec les opérateurs &amp;&amp; et ||, on peut faire en sorte que la deuxième expression ne s'exécute que si la première est vraie ou fausse, selon l'opérateur choisi.

Il y a quelques contraintes avec cette syntaxe, mais on verra tout ça en détail dans mon billet. Je posterai ici le lien quand il sera publié.

:)

Janel

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

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