[リストへもどる]
一括表示

投稿時間:2002/10/22(Tue) 14:33
投稿者名:くわくわ
URL :
タイトル:
第○曜日の算出方法について教えて下さい
お世話になります
スケジュール管理もどきを作成しようと思っているのですが
曜日の算出で、例えば第2月曜日とかを求める方法でループ
とか無しで算出ってできますか?

投稿時間:2002/10/22(Tue) 15:31
投稿者名:MIKAN
Eメール:
URL :
タイトル:
Re: 第○曜日の算出方法について教えて下さい
> お世話になります
> スケジュール管理もどきを作成しようと思っているのですが
> 曜日の算出で、例えば第2月曜日とかを求める方法でループ
> とか無しで算出ってできますか?

例えば、こんなんでどうでしょう。曜日は、日曜が1です。(WeekDay関数と同じ)

Function intNWeekDay(intYear As Integer, intMonth As Integer, intN As Integer, intWeekDay As Integer) As Integer
    Dim dteFirst As Date
    Dim intDay As Integer

    dteFirst = DateSerial(intYear, intMonth, 1)
    intDay = ((7 + intWeekDay - Weekday(dteFirst)) Mod 7) + (intN - 1) * 7 + 1
    If Month(DateSerial(intYear, intMonth, intDay)) = intMonth Then
        intNWeekDay = intDay
    Else
        intNWeekDay = -1
    End If
    
End Function

投稿時間:2002/10/22(Tue) 15:35
投稿者名:あき☆彡
Eメール:
URL :
タイトル:
Re: 第○曜日の算出方法について教えて下さい
こんな感じとか・・・
(ちょっと確認しただけなので、おかしい所あるかも)

'2002年10月第2月曜日取得
MsgBox GetWeekDay(2002, 10, vbMonday, 2)

'2002年10月第3土曜日取得
MsgBox GetWeekDay(2002, 10, vbSaturday, 3)

'(i)lYear  - 年
'(i)lMonth - 月
'(i)iWeek  - 曜日(vbSunday:日曜,vbMonday:月曜,vbTuesday:火曜,vbWednesday:水曜,
'                 vbThursday:木曜,vbFriday:金曜,vbSaturday:土曜)
'(i)lNumber - 週目
Private Function GetWeekDay(ByVal lYear As Long, ByVal lMonth As Long, _
                            ByVal iWeek As Integer, ByVal lNumber As Long) As Date
    Dim lDay As Long
    lDay = iWeek - WeekDay(DateSerial(lYear, lMonth, 1))
    Select Case lDay
        Case Is < 0:    lDay = lDay + 7 * lNumber
        Case Is >= 0:   lDay = lDay + 7 * (lNumber - 1)
    End Select
    GetWeekDay = DateSerial(lYear, lMonth, 1 + lDay)
End Function

投稿時間:2002/10/22(Tue) 15:58
投稿者名:くわくわ
URL :
タイトル:
ありがとうございます
MIKANさん・あき☆彡さんありがとうございます
グルグル回して曜日のカウントを取ろうと思っていたので
とっても助かりました
初心者なものでどうも着目点がずれているようで
勉強になりました