LoginSignup
3
1

More than 5 years have passed since last update.

Dartで日付の計算をする

Posted at

もしかしたら、ブームが来ているかもしれないと思ったので、簡単なコードを書いてみた。

date-calculator.dart
void main() {
  var start_day = new Date(2012,8,3,0,0,0,0);

  var one_week_ago = new Date(2012,8,10,0,0,0,0);

  var diff = one_week_ago.difference(start_day);

  print(diff.inDays);//7
  var difference =  difference(start_day, one_week_ago);
  print(difference);//5
}

int difference(start,end){
  var diff = 0;
  while(start < end){
    // start の曜日を調べる
    var weekday = start.weekday;
    // 土曜、日曜でないならdiffを増やす
    if(weekday !== Date.SAT && weekday !== Date.SUN){
      diff++;
    }
    // startを1日進める
    start = start.add(const Duration(1, 0, 0, 0));
  }
  return diff;
}

今回定義したメソッドdifferenceは、土日を除いた平日のみを計算する。

この程度のコードの量だとあんまりJSと変わらないかなぁ?なイメージ。むしろ、JSはプロパティの追加が簡単にできるので、Dateクラスにメソッドを追加して
var diff = one_week_ago.difference(start_day, true)こんなこともできるのでは?

フラグがtrueの時は、平日のみの計算みたいな・・・

3
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
3
1