2016-06-01 24 views
1

私は次のテストコードを持っています。基本的に私は新しいファイルがフォルダに作成されるときをチェックしています。私は、ファイルが午後4時以降に作成された場合、翌営業日を表示することを知る必要があります。現在、私のコードは翌日に表示されますが、翌営業日を表示する必要があります。どんな助けもありがとう。powershellで翌営業日を取得するには

$formatteddate = "{0:h:mm:ss tt}" -f (get-date) 

if ($formatteddate -gt "4:00:00 PM"){ 
$(Get-Date).AddDays(1).ToString('MMM d yyyy') 
} 
+0

あなたが月曜日意味:あなたは休日を処理したい場合は正しく、あなたは

が、これはそれを行う必要があります(理解するために思われるOP)フォーマットの詳細を省略するあなたのビジネスのための休日の明示的なリストが必要になります?あなたは休暇をどうやって働いていますか? –

+1

これはあなたには役に立つかもしれません:https://www.reddit.com/r/PowerShell/comments/4j9usl/getdate_next_business_day/ –

答えて

3

「ビジネスデー」は組織固有のものです。一部の組織は、他の組織が行う休暇には従事しません。 - 金曜日

# $date is input date 
$nextBizDay = $date.adddays(1) 

# You would probably want to generate the follow list programmatically, 
# instead of manually as done here 
$holidays = 1, <# New Years #> 
      18, <# MLK day 2016 #> 
       <# other holidays encoded as Day Of Year #> 
      360 <# Christmas in a Leap Year #> 
# An alternative to a list of holidays like this is to find a web service 
# you can query to get the holidays for a given year 

while ($nextBizDay.DayOfWeek -eq 'Saturday' -or 
     $nextBizDay.DayOfWeek -eq 'Sunday' -or 
     $nextBizDay.DayOfYear -in $holidays) { 
    if ($nextBizDay.DayOfYear -gt 366) { 
    throw "No next business day this year. Need to add additional logic" 
    } 
    $nextBizDay = $nextBizDay.adddays(1) 
} 
+0

祝日についてそれほど心配していませんが、このコードで次の営業日を得ることができました。 $ formatteddate = "{0:h:mm:ss tt}" -f(取得日) if($ formatteddate -gt "4:00:00 PM"){ $(Get-Date)。 AddDays(1 + $(1,2 -eq 7 - [int] $ formatteddate.dayofweek)).ToString( 'MMM d yyyy') } ' – SikRikDaRula

+0

@SikRikDaRulaこれは動作しません。 '$ formatteddate'を文字列として定義するので、参照する' dayofweek'プロパティはありません。 – TheMadTechnician

+0

それは私のためにうまく動作します、病気は本当にそれをテストするために金曜日まで待つ必要があります – SikRikDaRula

関連する問題