文字列の日付から当月何回目の何曜日かを表示する
<分類:値変換>
<使用例:文字列の日付(20190324)から当月何回目の何曜日か(日4)を表示する>
<プログラム例>
Sub 使用例() Dim date_moji As String Dim rtn1 As String date_moji = "20190324" rtn1 = 共通_文字列の日付から当月何回目の何曜日(date_moji) MsgBox ("文字列の日付(" & date_moji & ")は当月" & Right(rtn1, 1) & "回目の" & Left(rtn1, 1) & "曜日です") End Sub Function 共通_文字列の日付から当月何回目の何曜日(p1 As String) As String Dim date_moji As String Dim rtn1 As String Dim rtn2 As String Dim imax As Long Dim i01 As Long Dim i As Long Dim yobi As String Dim yobi_cnt As Long Dim s As String date_moji = p1 rtn1 = 共通_文字列の日付から末日(date_moji) rtn2 = 共通_cov_date_d9(rtn1) imax = rtn2 i01 = Left(rtn2, 6) & "01" yobi = 共通_文字列の日付から曜日(p1) yobi_cnt = 0 For i = i01 To imax s = i If 共通_文字列の日付から曜日(s) = yobi Then If s <= p1 Then yobi_cnt = yobi_cnt + 1 Else Exit For End If End If Next i 共通_文字列の日付から当月何回目の何曜日 = yobi & yobi_cnt End Function Function 共通_文字列の日付から末日(p1 As String) As Date Dim date_moji2 As String Dim rtn_date As Date Dim rtn_date2 As Date Dim rtn_date3 As Date date_moji2 = Left(p1, 6) & "01" rtn_date = 共通_cov_date_9d(date_moji2) rtn_date2 = DateAdd("m", 1, rtn_date) rtn_date3 = DateAdd("d", -1, rtn_date2) 共通_文字列の日付から末日 = rtn_date3 End Function Function 共通_文字列の日付から曜日(date_moji As String) As String Select Case Weekday(共通_cov_date_9d(date_moji)) Case "1" 共通_文字列の日付から曜日 = "日" Case "2" 共通_文字列の日付から曜日 = "月" Case "3" 共通_文字列の日付から曜日 = "火" Case "4" 共通_文字列の日付から曜日 = "水" Case "5" 共通_文字列の日付から曜日 = "木" Case "6" 共通_文字列の日付から曜日 = "金" Case "7" 共通_文字列の日付から曜日 = "土" End Select End Function Function 共通_cov_date_9d(p1 As String) As Date Dim d As Date d = Left(p1, 4) & "/" & Mid(p1, 5, 2) & "/" & Right(p1, 2) 共通_cov_date_9d = (Format(d, "yyyy/mm/dd")) End Function Function 共通_cov_date_d9(p1 As String) As String 共通_cov_date_d9 = CStr((Format(p1, "yyyymmdd"))) End Function
文字列の日付から当月末日の日付(YYYYMMDD)を表示する
<分類:値変換>
<使用例:文字列の日付(20190324)から当月末日の日付(20190331)を表示する>
<プログラム例>
Sub 使用例() Dim date_moji As String Dim rtn1 As String Dim rtn2 As String date_moji = "20190324" rtn1 = 共通_文字列の日付から末日(date_moji) rtn2 = 共通_cov_date_d9(rtn1) MsgBox ("文字列の日付(" & date_moji & ")の当月末日は(" & rtn2 & ")です") End Sub Function 共通_文字列の日付から末日(p1 As String) As Date Dim date_moji2 As String Dim rtn_date As Date Dim rtn_date2 As Date Dim rtn_date3 As Date date_moji2 = Left(p1, 6) & "01" rtn_date = 共通_cov_date_9d(date_moji2) rtn_date2 = DateAdd("m", 1, rtn_date) rtn_date3 = DateAdd("d", -1, rtn_date2) 共通_文字列の日付から末日 = rtn_date3 End Function Function 共通_cov_date_9d(p1 As String) As Date Dim d As Date d = Left(p1, 4) & "/" & Mid(p1, 5, 2) & "/" & Right(p1, 2) 共通_cov_date_9d = (Format(d, "yyyy/mm/dd")) End Function Function 共通_cov_date_d9(p1 As String) As String 共通_cov_date_d9 = CStr((Format(p1, "yyyymmdd"))) End Function
文字列の日付から当月の1日(初日)の曜日を表示する
<分類:値変換>
<使用例:文字列の日付(20190324)から当月1日の日付(20190301)の曜日(金)を表示する>
<プログラム例>
Sub 使用例() Dim date_moji As String Dim date_moji2 As String Dim rtn1 As String date_moji = "20190324" date_moji2 = Left(date_moji, 6) & "01" rtn1 = 共通_文字列の日付から曜日(date_moji2) MsgBox ("文字列の日付(" & date_moji & ")の当月1日(" & date_moji2 & ")は" & rtn1 & "曜日です") End Sub Function 共通_文字列の日付から曜日(date_moji As String) As String 'date_moji:対象文字列の日付 Select Case Weekday(共通_cov_date_9d(date_moji)) Case "1" 共通_文字列の日付から曜日 = "日" Case "2" 共通_文字列の日付から曜日 = "月" Case "3" 共通_文字列の日付から曜日 = "火" Case "4" 共通_文字列の日付から曜日 = "水" Case "5" 共通_文字列の日付から曜日 = "木" Case "6" 共通_文字列の日付から曜日 = "金" Case "7" 共通_文字列の日付から曜日 = "土" End Select End Function Function 共通_cov_date_9d(p1 As String) As Date Dim d As Date d = Left(p1, 4) & "/" & Mid(p1, 5, 2) & "/" & Right(p1, 2) 共通_cov_date_9d = (Format(d, "yyyy/mm/dd")) End Function