Visual Basic 中学校 掲示板 投稿の管理
タグのない投稿を抽出
統計
RSS
Visual Basic 中学校
投稿一覧
一日後の日付を表示するとき、次の日が存在しない場合、次月の1日を表示するようにしたい。
この投稿へのリンク
https://keijiban.umayadia.com/ThreadDetail.aspx?ThreadId=9915#CommentId16495
この投稿の削除
削除パスワード
削除する
コメント本文
投稿者
魔界の仮面弁士
 (社会人)
投稿日時
2010/12/18 23:15:28
コードから察するに、VB2008 もしくは VB2010 をお使いのようですね。
> 曜日を一日後のもので表示したいのですが
Today の曜日の一つ後を算出するのではなく、
「Today の一日後の日付」の曜日を得た方が早いと思いますよ。
一日後の日付を得る方法は、既に shu さんが回答しておられますね。
> Dim Tdy_Wd = Today.Dayofweek
> If Tdy_Wd = 6 Then
番号ではなく、DayOfWeek.Saturday 等で管理されるべきです。
> 'Tdy_Wdの曜日番号から曜日を割り出す。
ここが違います。
WeekdayName 関数に渡す曜日番号というものは、Today.DayOfWeek で得るのではなく、
Weekday 関数を使って得る必要があります。
Today.DayOfWeek から返されるのは、曜日そのものを表す値であり、具体的には
DayOfWeek.Sunday
' = 0
DayOfWeek.Monday
' = 1
' :
DayOfWeek.Saturday
'= 6
です。
一方、Weekday や WeekdayName で使う値は、1~7 を取ります。
しかもこの値は、曜日そのものを示しているのではなく、週内の第何曜日かを表す値です。
1~7 がどの曜日に割り当てられているのかは、関数の引数によって指定する事になります。
WeekdayName の場合は、1番に相当する曜日を第3引数で指定する事になっており、たとえば
「WeekdayName(1, , FirstDayOfWeek.Sunday)」ならば『日曜日』
「WeekdayName(2, , FirstDayOfWeek.Sunday)」ならば『月曜日』
「WeekdayName(1, , FirstDayOfWeek.Monday)」ならば『月曜日』
といった具合です。Weekday 関数の場合は第2引数です。
この引数を指定しなかった場合は、FirstDayOfWeek.System が指定された物として扱われ、
OS の地域設定に依存した結果を返します。