もしかしたら、ブームが来ているかもしれないと思ったので、簡単なコードを書いてみた。
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
の時は、平日のみの計算みたいな・・・