javascriptで時間を計算したいのですが、非常に長いコードのようです。それは半時間になると複雑になります。これはこれまでの私のコードです。if文で時間を計算する
<script>
$(function(){
$('#intime,#outtime').on('input', function() {
// declare variables
var intime = new moment($("#intime").val(), 'HH:mm:ss'); // get value of intime
var outtime= new moment($("#outtime").val(), 'HH:mm:ss');
var startTime = new moment("08:00:00", 'HH:mm:ss');
var halfDay = new moment("12:30:00", 'HH:mm:ss');
var wholeDay = new moment("18:00:00", 'HH:mm:ss');
var othours = 0; // declare day as 0
/*AFTER 18.00*/
if (moment(intime).hour() == 8 && (moment(outtime).hour() == 18 && moment(outtime).minute() == 30)) {
othours = 0.5;
}
else if (moment(intime).hour() == 8 && (moment(outtime).hour() == 19 && moment(outtime).minute() == 30)) {
othours = 1.5;
}
else if (moment(intime).hour() == 8 && (moment(outtime).hour() == 20 && moment(outtime).minute() == 30)) {
othours = 2.5;
}
else if (moment(intime).hour() == 8 && (moment(outtime).hour() == 21 && moment(outtime).minute() == 30)) {
othours = moment(outtime).hour() && moment(outtime).minute() - moment(wholeDay).hour() && moment(wholeDay).minute();
}
else if (moment(intime).hour() == 8 && (moment(outtime).hour() == 22 && moment(outtime).minute() == 30)) {
othours = 4.5;
}
else if (moment(intime).hour() == 8 && (moment(outtime).hour() == 23 && moment(outtime).minute() == 30)) {
othours = 5.5;
}
else if (moment(intime).hour() == 8 && (moment(outtime).hour() == 00 && moment(outtime).minute() == 30)) {
othours = 6.5;
}
/*BEFORE 8.00*/
else if (moment(intime).hour() == 8 && (moment(outtime).hour() == 00 && moment(outtime).minute() == 30)) {
othours = 6.5;
}
else if (moment(intime).hour() == 8 && (moment(outtime).hour() == 00 && moment(outtime).minute() == 30)) {
othours = 6.5;
}
/*WHOLE HOURS*/
else if (moment(intime).hour() == 8 && moment(outtime).hour() > 18) {
othours = moment(outtime).hour() - moment(wholeDay).hour();
}
else if (moment(intime).hour() < 8 && moment(outtime).hour() > 18) {
othours = moment(startTime).hour() - moment(intime).hour() + moment(outtime).hour() - moment(wholeDay).hour();
}
else if (moment(intime).hour() < 8 && moment(outtime).hour() == 18) {
othours = moment(startTime).hour() - moment(intime).hour();
}
$("#othours").val(othours);
});
})
</script>
さらに短い方法がありますか、他の半時間もこのように続行する必要がありますか? intime = 6.30、outtime = 19.30の場合と同様に、時間は3時間でなければなりません。
これが私の出力です。私が入力したときにおける時間とアウト時間
出力には何が欲しいのですか?コードは非常に複雑です。私はあなたが何を望んでいるのか理解できません... –
初心者のために、単純な変数にそれらを一度格納することができたら、何度も同じ機能を呼び出さないでください – charlietfl
しかし、何を達成しようとしていますか? – Picard