1

指定された現在の日付で年の最後の日を見つける必要があるタスクを実行しています。

たとえば、2013 年 1 月 6 日を指定すると、その年の最終日が自動的に返されます。2013/12/31 のように

年の残りの日数を追加するなど、さまざまな方法を使用していますが、閏年になるとミスマッチが発生します。誰かが正確な解決策を送ってくれたり、方法を教えてくれたりできますか.

基本的には、今年の最後の日付を飛び越えたいと思っていました.これは暫定的にC#用でした

4

6 に答える 6

20

なぜこのような単純なものではないのですか?

var date = new DateTime(2013, 1,6);
var lastDayOfTheYear = new DateTime(date.Year, 12, 31);
于 2013-09-05T11:06:30.110 に答える
4

曜日のことですか?

new DateTime(DateTime.Now.Year, 12, 31).DayOfWeek

またはより読みやすい:

DateTime lastDateOfYear = new DateTime(DateTime.Now.Year, 12, 31);
DayOfWeek dayOfWeek = lastDateOfYear.DayOfWeek;

DayOfWeek 列挙型の詳細: http://msdn.microsoft.com/en-us/library/system.dayofweek.aspx

それとも来年まであと何日?

DateTime lastDateOfYear = new DateTime(DateTime.Now.Year, 12, 31);
var daysTillNextYear = (lastDateOfYear - DateTime.Now).TotalDays;
于 2013-09-05T11:12:35.003 に答える
4

これが簡単な解決策です。私は多くを検索しましたが、何度も試した後、これで解決しました。

DateTime LastDayOfYear(DateTime date)
    {           
        DateTime newdate = new DateTime(date.Year + 1, 1, 1);
        //Substract one year
        return newdate.AddDays(-1);
    }
//Here calling the function 
DateTime current_time = LastDayOfYear(DateTime.Now); // 05,Sep ,2013
// It returned 31, Dec, 2013
于 2013-09-05T11:12:35.170 に答える
3

これを試すことができます..初日と最終日を取得するために..

int year = DateTime.Now.Year;
DateTime firstDayyear = new DateTime(year , 1, 1);
DateTime lastDayyear = new DateTime(year , 12, 31);
于 2013-09-05T11:07:03.160 に答える
1

最終日を取得するには、次を使用します。

string lastdayofyear = new DateTime(DateTime.Now.Year, 12,31).DayOfWeek.ToString();
于 2013-09-05T11:18:16.740 に答える
1

日付をコピーし、日を 31 に変更し、月を 12 月に変更すると、最終日になります。

于 2013-09-05T11:06:48.917 に答える