プログラミング学習305日目 〜 自動車整備履歴アプリ修正 〜
オイル交換時期の表示条件の実装。
オイル交換条件は前回交換時期より6ヶ月または走行距離5000km(変更可能)なのですが、これらの近い時期を表示させたい。これらの日付はDate型なのですが、大小の比較がどうもうまくいかない。if(date1 >= date2) みたいな感じでだめみたいです。
なので半ば強引にこうしたらとりあえずうまく動きました。
//交換日(距離で計算)
recentDate1.setDate(recentDate1.getDate() + daysAfter)
let yyyy = recentDate1.getFullYear();
let mm = recentDate1.getMonth();
let dd = recentDate1.getDate();
//交換日(180日後)
let recentDate3 = new Date(recentDate);
recentDate3.setDate(recentDate3.getDate() + 180);
let y = recentDate3.getFullYear();
let m = recentDate3.getMonth();
let d = recentDate3.getDate();
if( yyyy*10000 + mm*100 +dd >= y*10000 + m*100 + d ){
document.getElementById('changeDate').textContent = ` 次回オイル交換は ${y}年${m + 1}月${d}日`;
} else {
document.getElementById('changeDate').textContent = `次回オイル交換は ${yyyy}年${mm + 1}月${dd}日`;
}
年月日を取得して組み合わせで数字に変換して比較しました。
これを書きながらやり方としては絶対に正しいやり方ではないと思い、調べてみたらやっぱり良い比較方法がありました。
そりゃそうですよね。