7

VB6コードには、次のものがあります。

dim I as Long 

I = Weekday(Now, vbFriday) 

私はC#で同等のものを求めています。誰でも助けることができますか?

4

4 に答える 4

15
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日後です。

于 2008-12-30T15:05:44.930 に答える
4

DateTime.DayOfWeekプロパティのことですか?

DayOfWeek dow = DateTime.Now.DayOfWeek;
于 2008-12-30T14:43:07.083 に答える
3

はい、各 DateTime 値には、同じ名前の列挙を返す DayOfWeek という組み込みプロパティがあります...

DayOfWeek dow = DateTime.Now.DayOfWeek;

整数値が必要な場合は、列挙値を int にキャストするだけです。

int dow = (int)(DateTime.Now.DayOfWeek);

ただし、1 から 6 までの定数を追加し、Mod 7 を実行して日曜日以外の別の日に再調整する必要があります...

于 2008-12-30T14:44:04.133 に答える
2

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

于 2008-12-30T14:58:40.797 に答える