Flutter(Dart), 直近の過去の日曜日の日付を求めるコード
1,はじめに
Fluter/Dartでアプリを作っている最中に、
システム日付から直近(過去)の日曜日の日付を求める処理を作成しました。
システム日付から一番近い特定の曜日の日付を求める場合など、
Dartでの日付処理に応用ができるコードのため、
共有させていただきます。
2,コード
実装は下記のとおりです。
import 'package:intl/date_symbol_data_local.dart';
import 'package:intl/intl.dart';
// 直近の日曜日の日付を算出し、その日付を返す
DateTime getLastSundayDataTime() {
initializeDateFormatting('ja');
DateTime dResult = DateTime.now();
// 当日が日曜日ではないならば、
// 直前の日曜日まで日付を戻していく
if (dResult.weekday != DateTime.sunday) {
for (int i = 0; i < 7; ++i) {
dResult = dResult.subtract(Duration(days : 1));
// 直近の未来の日曜日を求めたい場合は、下記のようにします。
// dResult = dResult.add(Duration(days : 1));
if (dResult.weekday == DateTime.sunday) {
break;
}
}
}
return (dResult);
}
// 直近の日曜日の日付を算出し、その日付を返す
String getLastSundayString() {
String ret = "";
// 計算結果を文字列にする
ret = (DateFormat('yyyy/MM/dd').format(getLastSundayDataTime())).toString();
return (ret);
}
解説としては、日付の減算処理にて1日を指定することで、
直近の過去の日曜日の日付を求めています。
日付処理のライブラリを使用しているため「pubspec.yaml」には下記を追記してください。
dependencies:
flutter:
sdk: flutter
# https://flutter.keicode.com/dart/intl-datetime.php
intl: ^0.15.7
以上です。
最近のコメント