2个时间相减得到分钟数相减的函数
函数名称:timeDiffInMinutes
函数功能:计算两个时间相减得到的分钟数差值
输入参数:
- startTime:起始时间,格式为"hh:mm",例如"09:30"
- endTime:结束时间,格式为"hh:mm",例如"17:45"
输出结果:
- 返回两个时间相减得到的分钟数差值,如果起始时间晚于结束时间,则返回负数。
函数实现:
首先需要对输入参数进行检查和转换。我们可以使用正则表达式来检查输入参数是否符合要求。如果不符合要求,则抛出异常。
```python
import re
def timeDiffInMinutes(startTime, endTime):
    # 检查输入参数格式是否正确
时间正则表达式java
    pattern = r'^([01]\d|2[0-3]):([0-5]\d)$'
    if not re.match(pattern, startTime) or not re.match(pattern, endTime):
        raise ValueError('Invalid input format')
    # 将字符串转换成小时和分钟的整数
    startHour, startMinute = map(int, startTime.split(':'))
    endHour, endMinute = map(int, endTime.split(':'))
```
接下来,我们需要将起始时间和结束时间转换成分钟数。这样可以方便后续计算。
```python
    # 将起始时间和结束时间转换成分钟数
    startTotalMinutes = startHour * 60 + startMinute
    endTotalMinutes = endHour * 60 + endMinute
```
然后,我们可以计算两个时间之间的分钟数差值。如果起始时间晚于结束时间,则返回负数。
```python
    # 计算两个时间之间的分钟数差值
    diffInMinutes = endTotalMinutes - startTotalMinutes
    if diffInMinutes < 0:
        diffInMinutes += 24 * 60
```
最后,我们将计算得到的分钟数差值作为函数返回值。
```python
    return diffInMinutes
```
完整代码如下:
```python
import re
def timeDiffInMinutes(startTime, endTime):
    # 检查输入参数格式是否正确
    pattern = r'^([01]\d|2[0-3]):([0-5]\d)$'
    if not re.match(pattern, startTime) or not re.match(pattern, endTime):
        raise ValueError('Invalid input format')
    # 将字符串转换成小时和分钟的整数
    startHour, startMinute = map(int, startTime.split(':'))
    endHour, endMinute = map(int, endTime.split(':'))
    # 将起始时间和结束时间转换成分钟数
    startTotalMinutes = startHour * 60 + startMinute
    endTotalMinutes = endHour * 60 + endMinute
    # 计算两个时间之间的分钟数差值
    diffInMinutes = endTotalMinutes - startTotalMinutes
    if diffInMinutes < 0:
        diffInMinutes += 24 * 60
    return diffInMinutes
```
使用示例:
```python
diff1 = timeDiffInMinutes('09:30', '17:45')
print(diff1)  # 输出结果为495
diff2 = timeDiffInMinutes('23:00', '02:30')
print(diff2)  # 输出结果为210
diff3 = timeDiffInMinutes('18:00', '08:00')
print(diff3)  # 输出结果为720
```

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。