質問

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

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top