数组循环计算开始于结束时间差并求和

该代码段展示了一个Vue.js组件,用于计算并显示一系列时间区间(如课程或会议)的总时长。它遍历数组中的每个时间区间,通过调用`calculateTimeDiff`方法计算开始和结束时间之间的差值,并将结果累加。时间差以分钟为单位,然后转换为小时和分钟的格式显示。
摘要由CSDN通过智能技术生成

一只小白的记录

data() {

return {

array: [

{ startTime: '09:30', endTime: '12:45' },

{ startTime: '14:00', endTime: '16:30' },

{ startTime: '19:00', endTime: '21:15' }

],

totalTime: ''

};

},

mounted() {

this.totalTimeInterval();

},

methods: {

calculateTimeDiff(startTime, endTime) {

// 获取当前日期

const currentDate = new Date().toLocaleDateString();

// 将开始时间和结束时间转换为Date对象

const startDate = new Date(`${currentDate} ${startTime}`);

const endDate = new Date(`${currentDate} ${endTime}`);

// 如果结束时间小于开始时间,则表示跨天了

if (endDate < startDate) {

endDate.setDate(endDate.getDate() + 1); // 结束日期往后推一天

}

// 计算时间差(以毫秒为单位)

const timeDiff = endDate - startDate;

// 将时间差转换为分钟

const minutes = Math.floor(timeDiff / (1000 * 60));

// 返回结果 return `${minutes}分钟`;

},

totalTimeInterval() {

let totalMinutes = 0;

for (let i = 0; i < this.array.length; i++) {

const timeObj = this.array[i];

const startTime = timeObj.startTime;

const endTime = timeObj.endTime;

const minutes = parseInt(this.calculateTimeDiff(startTime, endTime));

if (!isNaN(minutes)) {

totalMinutes += minutes;

}

}

// 将总时间间隔转换为小时和分钟

const hours = Math.floor(totalMinutes / 60);

const remainingMinutes = totalMinutes % 60;

// 更新总时间间隔

this.totalTime = `${hours}小时${remainingMinutes}分钟`;

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值