0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

小ネタ:Flutterで時刻を加算する方法

Posted at

時刻を加算する方法を調べたので、小ネタとして記事にしておきます。
結論ですが時刻を加算する方法は二つあります。

addメソッド

一つ目はDateTimeaddです。
コンパクトにかけるのがメリットですが、日にちの加算までしかできず、年月の加算はできません。
もししたい場合は「普通に足す」の項をご参照ください。

下記のサンプルコードのように、baseTime.add(Duration(),);で足したい時間を加算します。
時間の繰り上げも勝手にやってくれます。(30分45秒に、20秒を足すと31分5秒となります)

void _incrementCounter() {
  final baseTime = DateTime(2022, 3, 10, 9, 30, 45);

  // 2022-03-10 09:30:45
  printTime(baseTime);

  final addTwentySec = baseTime.add(
    const Duration(
      seconds: 20,
    ),
  );

  // 2022-03-10 09:31:05
  printTime(addTwentySec);
}

void printTime(DateTime dateTime) {
  var dtFormat = DateFormat("yyyy-MM-dd HH:mm:ss");
  print(dtFormat.format(dateTime));
}

普通に足す

二つ目の方法は愚直にたす方法です。
この方法なら年と月も足せます。
またaddと同じように、時間の繰り上げも勝手にやってくれます。(2022年3月に10ヶ月足すと2023年1月にしてくれます)

void _incrementCounter() {
  final baseTime = DateTime(2022, 3, 10, 9, 30, 45);

  // 2022-03-10 09:30:45
  printTime(baseTime);

  final addTenMonth = DateTime(
    baseTime.year,
    baseTime.month + 10,
    baseTime.day,
    baseTime.hour,
    baseTime.minute,
    baseTime.second,
  );

  // 2023-01-10 09:30:45
  printTime(addTwentySec2);
}

void printTime(DateTime dateTime) {
  var dtFormat = DateFormat("yyyy-MM-dd HH:mm:ss");
  print(dtFormat.format(dateTime));
}

以上、小ネタでした!!

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?