2014-02-25 53 views
-3

对于编程任务,我需要显示假想咖啡厅打开的时间。在周末,咖啡厅比一周之后开放一个半小时,但在同一时间关闭。使用强制转换和setfill将int值更改为时间

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

我的老师建议使用cast和setfill。我已经尝试过对两者进行研究,但我不确定它在程序中的应用。那么,如何将整数(例如845)转换为时间格式(例如8:45)呢?

+1

你可以阅读有关编辑格式化你的问题,然后点击橙色的?为了便于阅读,请仔细阅读并格式化您的代码。 – crashmstr

+0

谢谢,我刚刚编辑它。如果您有任何建议,请告诉我。 – user3352763

回答

0

我想我们可以假设整数总是在0到2400之间,所以我们最多只对它的四位数感兴趣。

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

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

1245%100 = 45(< modulo =操作者)

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

其余很简单:

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

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

结果:12:45

+0

啊,好吧,现在有道理。非常感谢! :) – user3352763