筆者は花粉症がひどく、辛い3日間でした。
でも、今日からはまた仕事ですので、そんな泣き言は言ってられません。
ということで、やる気を出すためのボタンクリックをお願いします!
ありがとうございます。
さて、今日は・・・
営業日数を算出するという事をLotusScriptで実現する必要があったので、やってみました。
@関数では、@BusinessDaysというのがあるので良いのですが、LotusScriptにはそれらしきものは見あたりません。
Evaluate( "@BusinessDays(~" )
でやっても良いのですが、それでは芸がないのでLotusScriptでやってみましょう。
単純に組んでみました。
開始日と終了日の間に、どれだけ日付があるかをカウントしているだけです。
その間に、定義した休日がくる場合は、カウントしないというようにしています。
@BusinessDaysに似せて作っているので、引数は以下の4つです。
- startDate 開始日
- endDate 終了日
- daysToExclude 営業日としてカウントしない曜日(1が日曜日、2が月曜日・・・7が土曜日)
- datesToExclude 営業日としてカウントしない日付
戻り値は、営業日数です(Integerの数値型)。
試してみてください。
--------------------------------------------------
Function BusinessDays( startDate As String, endDate As String, daysToExclude As String, datesToExclude As String ) As Integer
On Error GoTo ErrProc
Dim startDT As NotesDateTime '基準日
Dim endDT As NotesDateTime '終了日
Dim wday As Integer '開始日の曜日
Dim cnt As Integer '営業日数
Set startDT = New NotesDateTime( startDate )
Set endDT = New NotesDateTime( endDate )
cnt = 0
Do While startDT.DateOnly <= endDT.DateOnly wday = CStr(Weekday( startDT.DateOnly )) If InStr( daysToExclude, wday ) <> 0 Or InStr( datesToExclude, startDT.DateOnly ) <> 0 Then
Else
cnt = cnt + 1
End If
Call startDT.AdjustDay( 1 )
Loop
'戻り値を返す
BusinessDays = cnt
Exit Function
ErrProc:
BusinessDays = -1
Exit Function
End Function
【PR】ノーツ/ドミノに関するお問い合わせは下記まで【PR】
単純なDBのカスタマイズから他アプリケーションとの連携までご要望にお応えします
0 件のコメント:
コメントを投稿