27

新しい Google Dart 言語を試していますが、現在の月の最終日を取得する方法がわかりません。

これは私に現在の日付を与えます:

var now = new DateTime.now();
4

5 に答える 5

81

次の月にゼロの日の値を指定すると、前月の最終日が得られます

var date = new DateTime(2013,3,0);
print(date.day);  // 28 for February
于 2013-02-11T15:25:51.510 に答える
19

これを見つける方法の 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

プログラムでこれを行う場合に備えて、追加のチェック/コードがあります(たとえば、特定の月を整数として持っている場合)。

于 2013-02-11T15:17:34.573 に答える