使用强制转换和setfill将int值更改为时间

时间:2014-02-25 19:06:22

标签: c++ casting

对于编程作业,我需要显示假想的咖啡馆开放的时间。在周末,咖啡馆比一周晚一个半小时开放,但同时关闭。

用户输入开放时间,关闭时间以及周末打开的时间。该程序应该计算并显示咖啡馆的时间表。到目前为止,我的程序可以完成所有这些,但我不知道如何将常规整数(如845)转换为时间格式,例如8:45。

我的老师建议使用cast和setfill。我试过研究这两种方法,但我不确定它在程序中的适用范围。

那么,如何将整数(例如845)转换为时间格式(例如8:45)?

1 个答案:

答案 0 :(得分:0)

我想我们可以假设整数总是介于0到2400之间,所以我们最多感兴趣的是它的四个数字。

一种方法是通过除法和模来访问整数的部分。我们以1245(12:45)为例:

1245/100 = 12(总是向下舍入)

1245%100 = 45(< = {{}}}运算符)

因此,通过使用除法和模数,我们可以分别提取前两个数字(=小时)和后两个数字(=分钟)。

其余的很容易:

int time = 1245; //your time
int hours = time / 100;
int minutes = time % 100;

//print it
std::cout << hours << ":" << minutes << std::endl;

结果:12:45