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 を返します。