C#のVB6のWeekDay関数と同等
質問
VB6コードには、次のものがあります:
dim I as Long
I = Weekday(Now, vbFriday)
C#で同等のものが必要です。誰でも助けてもらえますか?
解決
public static int Weekday(DateTime dt, DayOfWeek startOfWeek)
{
return (dt.DayOfWeek - startOfWeek + 7) % 7;
}
これは次を使用して呼び出すことができます:
DateTime dt = DateTime.Now;
Console.WriteLine(Weekday(dt, DayOfWeek.Friday));
上記の出力:
4
火曜日は金曜日の4日後です。
他のヒント
DateTime.DayOfWeek プロパティを意味します
DayOfWeek dow = DateTime.Now.DayOfWeek;
はい、各DateTime値にはDayOfWeekと呼ばれる組み込みプロパティがあり、同じ名前の列挙を返します...
DayOfWeek dow = DateTime.Now.DayOfWeek;
整数値が必要な場合は、列挙値をintにキャストするだけです。
int dow = (int)(DateTime.Now.DayOfWeek);
1から6までの定数を追加し、Mod 7を実行して、日曜日以外の別の日に再調整する必要があります...
VBのWeekday関数の2つの引数形式に相当するものはないと思います。
このようなものを使用してエミュレートできます;
private static int Weekday(DateTime date, DayOfWeek startDay)
{
int diff;
DayOfWeek dow = date.DayOfWeek;
diff = dow - startDay;
if (diff < 0)
{
diff += 7;
}
return diff;
}
その後、次のように呼び出します:
int i = Weekday(DateTime.Now, DayOfWeek.Friday);
火曜日は金曜日の4日後なので、今日は4を返します。
所属していません StackOverflow