2012-05-10 59 views
0

我想创建一个计数器,以从几分钟内的给定数字检索月,日,小时,分钟数,例如我知道:从分钟数中检索月,日,小时,分钟

60 minutes in an hour 
24 hours in a day = 60 x 24 = 1440 minutes 
31 days per month 
1 month = 24 x 60 x 31 = 44,640 minutes 

所以,如果我举例如数字44640我想要有1个月0天0小时0分钟,或例如,如果我给44700我想要有1个月,0天0小时60分钟或1个月0天1小时0分

请帮忙吗?

+0

嗨...在我发布答案之前,我想多一点信息。具体来说,你在哪里得到的号码? - 在这种情况下是44640.像闰年这样的事情很重要吗? – haroldcampbell

+0

我从我的核心数据库中的完成任务的持续时间取数,总数在分钟... – Piero

+0

很酷。看起来像@马克钉。 – haroldcampbell

回答

3
int total_minutes = 44640; 
int total_hours = total_minutes/60; 
int minutes = total_minutes % 60; 
int total_days = total_hours/24; 
int hours = total_hours % 24; 
int months = total_days/31; 
int days = total_days % 31; 

printf("%d months, %d days, %02d:%02d\n", months, days, hours, minutes); 

但这是误导,因为月份不是全部31天。平均而言,公历一个月为30.436875天(43829.1分钟),因此您可以使用该数字。对于许多应用来说,这样的计算只是假设一个月总是30天。但是,如果您的时间间隔固定在某个特定时间点,则最好使用两端的日期来确定它们之间有多少个整月。

+0

非常感谢你!它是亲切的,你在一个月内的一天是正确的,我想我用30,所以我只是改变这两条线? int months = total_days/30; int days = total_days%30; – Piero

+0

mark您是否看过我的评论? – Piero

+0

是的,只是改变这两条线。 –

相关问题