新しい Google Dart 言語を試していますが、現在の月の最終日を取得する方法がわかりません。
これは私に現在の日付を与えます:
var now = new DateTime.now();
新しい Google Dart 言語を試していますが、現在の月の最終日を取得する方法がわかりません。
これは私に現在の日付を与えます:
var now = new DateTime.now();
次の月にゼロの日の値を指定すると、前月の最終日が得られます
var date = new DateTime(2013,3,0);
print(date.day); // 28 for February
これを見つける方法の 1 つを次に示します。
var now = new DateTime.now();
// Find the last day of the month.
var beginningNextMonth = (now.month < 12) ? new DateTime(now.year, now.month + 1, 1) : new DateTime(now.year + 1, 1, 1);
var lastDay = beginningNextMonth.subtract(new Duration(days: 1)).day;
print(lastDay); // 28 for February
現在の日付があるので、翌月の最初の日を作成し、そこから 1 日を引きます。年度の変わり目も考慮しています。
更新:これは同じことの少し短いコードですが、クリスのゼロトリックに触発されています:
var now = new DateTime.now();
// Find the last day of the month.
var lastDayDateTime = (now.month < 12) ? new DateTime(now.year, now.month + 1, 0) : new DateTime(now.year + 1, 1, 0);
print(lastDayDateTime.day); // 28 for February
プログラムでこれを行う場合に備えて、追加のチェック/コードがあります(たとえば、特定の月を整数として持っている場合)。