🎂
Flutterで誕生日から年齢を算出するときのメモ
この記事の内容
現在うさぎの体調管理アプリを開発中で、誕生日から現在の年齢を算出して表示させたかったのですが計算の仕方がわからなかったため自分用のメモとしてここに書いておくためのものです。
初学者の粋をまだ出れていないためまだまだ勉強不足のためツッコミどころ多いかもしれません。
そのため間違いとか修正点ございましたら、ご指摘いただけると幸いです!
入れたライブラリ
参考にしたサイト
画面の動き
該当箇所のコード
modelとviewでファイルを分けてProviderをつかっております。
model
String birthday;
int age;
///日付選択
Future<void> selectDate(BuildContext context) async {
final DateTime selected = await showDatePicker(
context: context,
locale: const Locale('ja'),
initialDate: DateTime.now(),
firstDate: DateTime(DateTime(2006).year),
lastDate: DateTime.now(),
builder: (BuildContext context, Widget widget) {
return widget;
},
);
final selectedBirthDay = selected;
final today = DateTime.now();
if (selected != null) {
///今日の日付から選択した誕生日の年数のみ引く
this.age = today.year - selectedBirthDay.year;
this.birthday = (DateFormat.yMMMd('ja')).format(selected);
}
notifyListeners();
}
body: Consumer<AddRabbitModel>(
builder: (context, model, child) {
return SingleChildScrollView(
child: Stack(
children: [
----省略----
SizedBox(
width: double.infinity,
child: FlatButton(
onPressed: () async {
await model.selectDate(context);
},
child: Row(
mainAxisAlignment: MainAxisAlignment.center,
children: [
FaIcon(FontAwesomeIcons.calendarAlt),
Padding(
padding: const EdgeInsets.all(8.0),
child: model.birthday != null
? Text(
'誕生日${model.birthday}: 年齢${model.age}歳')
: Text('タップして誕生日を選択'),
),
],
),
),
),
----省略----
あとがき
今回は、Flutterで誕生日から年齢を算出のときの計算の仕方をやりました。
また勉強になったことをアウトプットがてら発信できるように勉強頑張ります。
Discussion