指定された現在の日付で年の最後の日を見つける必要があるタスクを実行しています。
たとえば、2013 年 1 月 6 日を指定すると、その年の最終日が自動的に返されます。2013/12/31 のように
年の残りの日数を追加するなど、さまざまな方法を使用していますが、閏年になるとミスマッチが発生します。誰かが正確な解決策を送ってくれたり、方法を教えてくれたりできますか.
基本的には、今年の最後の日付を飛び越えたいと思っていました.これは暫定的にC#用でした
なぜこのような単純なものではないのですか?
var date = new DateTime(2013, 1,6);
var lastDayOfTheYear = new DateTime(date.Year, 12, 31);
曜日のことですか?
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;
これが簡単な解決策です。私は多くを検索しましたが、何度も試した後、これで解決しました。
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
これを試すことができます..初日と最終日を取得するために..
int year = DateTime.Now.Year;
DateTime firstDayyear = new DateTime(year , 1, 1);
DateTime lastDayyear = new DateTime(year , 12, 31);
最終日を取得するには、次を使用します。
string lastdayofyear = new DateTime(DateTime.Now.Year, 12,31).DayOfWeek.ToString();
日付をコピーし、日を 31 に変更し、月を 12 月に変更すると、最終日になります。