-3

私はこれが苦手ですが、日付から週番号を計算したいと思っています。そして、私が見つけたのはこれでした:

private int weekNumber(DateTime fromDate)
    {
        DateTime startOfYear = fromDate.AddDays(-fromDate.Day + 1).AddMonths(-fromDate.Month + 1);
        DateTime endOfYear = startOfYear.AddYears(1).AddDays(-1);
        int[] iso8601Correction = { 6, 7, 8, 9, 10, 4, 5 };
        int nds = fromDate.Subtract(startOfYear).Days + iso8601Correction[(int)startOfYear.DayOfWeek];
        int wk = nds / 7;
        switch (wk)
        {
            case 0:
                return weekNumber(startOfYear.AddDays(-1));
            case 53:
                if (endOfYear.DayOfWeek < DayOfWeek.Thursday)
                    return 1;
                else
                    return wk;
            default: return wk;
        }
    }

したがって、これはすべて見栄えがします。しかし、たとえばテキストブロックでこれを使用するにはどうすればよいですか。これは知らん。

4

1 に答える 1

2

あなたのコメントに基づいています。weekNumber メソッドのより良い実装を見つける必要があります。また、標準の命名規則に従って名前を変更します。weekNumber() を拡張メソッドにすることを検討してください。

DateTime dt=DateTime.Parse(MyTextBlock.Text);
int weeknumber=weekNumber(dt);
DateValue.Text=weeknumber.ToString();
于 2013-05-24T20:44:23.010 に答える