Web Developer's Struggle Memories

日々の業務から思ったこと、学んだことを書き連ねていきます。

アルゴリズム問題 ~本の延滞料金~

問題

今回の問題はこちら。

本の返却日と返却期限から延滞料金を計算する

というもの。 ルールはこちら。

  • 返却日と返却期限の文字列配列を渡される
  • 日付の文字列はdd mm yyyyの形式(半角スペース区切り)
  • 返却期限を過ぎていなければ、0円
  • 年・月が一緒であれば、1日過ぎる毎に150円
  • 年は一緒、月がずれていれば、1月過ぎる毎に500円
  • 年もずれていれば、固定で10000円

補足

  • 返却日と返却期限が一致している場合、0円
  • 月がずれていた場合、何日ずれているかは無視する

実装

今回は勉強中のJavaScriptで書いた。

var dates = {
   'return':  '12 6 2016',    // 返却日
   'limit': '6 6 2016'        // 返却期限
}
// 延滞料金用
var fine;
// 年月日の差分
var date_diff  = dates['return'].substring(0,2) - dates['limit'].substring(0,2);
var month_diff = dates['return'].substring(2,4) - dates['limit'].substring(2,4);
var year_diff  = dates['return'].substring(4)   - dates['limit'].substring(4);

if (year_diff > 0) {
     fine = 10000;
} else if (month_diff > 0) {
     fine = month_diff * 500;
} else if (date_diff > 0) {
    fine = date_diff * 15;
} else {
    fine = 0;
}

console.log(fine + '円');

こうした方が良いよ!というご意見ございましたら、是非コメントいただけると助かります。
よろしくお願い致しますm(_ _)m