公交车公司要统计公交车从始发站到末站所花费的时间。已知公交车于a时b分从始发站出发,并于当天的c时d分到达终点站(以上的表述均为24小时制)。 公交车从始发站到终点站共花费了e小时f分钟(0<=f<60)请按要求输出e和fc++
时间: 2024-10-03 19:01:35 浏览: 28
在C++中,你可以使用日期和时间库`chrono`来处理这个问题。以下是一个简单的程序示例,它会接收用户输入并计算公交车的行驶时间:
```cpp
#include <iostream>
#include <chrono>
// 将小时和分钟转换成时间点
std::chrono::time_point<std::chrono::hours, std::chrono::minutes> timeFromParts(int hours, int minutes) {
return std::chrono::hours(hours) + std::chrono::minutes(minutes);
}
int main() {
int startHour, startMinute, endHour, endMinute;
std::cout << "请输入公交车的起始时间(a时b分): ";
std::cin >> startHour >> startMinute;
std::cout << "请输入公交车的结束时间(c时d分): ";
std::cin >> endHour >> endMinute;
// 创建时间点
auto startTime = timeFromParts(startHour, startMinute);
auto endTime = timeFromParts(endHour, endMinute);
// 计算行驶时间
std::chrono::hours differenceHours = endTime.time_since_epoch() / std::chrono::hours(1);
std::chrono::minutes differenceMinutes = (endTime - startTime).count() % std::chrono::hours(1).count();
// 转换为整数形式(去掉不足一小时的部分)
int totalHours = duration_cast<std::chrono::hours>(differenceHours).count();
int remainingMinutes = static_cast<int>(differenceMinutes);
std::cout << "公交车从始发站到终点站共花费了 " << totalHours << " 小时 " << remainingMinutes << " 分钟" << std::endl;
return 0;
}
```
阅读全文