Piero
Piero

Reputation: 9273

Retrieve Month, Day, Hour, Minute, from a number in minute

i want create a counter that retrieve the number of month, day, hour, minute from a given number in minutes, for example i know that:

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

so if i give for example the number 44640 i want have 1 month 0 day 0 hour 0 minute , or for example if i give 44700 i want have 1 month, 0 day 0 hour 60 minute or 1 month 0 day 1 hour 0 minute

any help please?

Upvotes: 0

Views: 97

Answers (1)

Mark Reed
Mark Reed

Reputation: 95242

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);

But that's misleading, since months are not all 31 days. On average, a month in the Gregorian calendar is 30.436875 days (43829.1 minutes), so you could use that figure. For many applications, such calculations just assume that a month is always 30 days. But if your time interval is anchored to a specific point in time, it might be better to use the date at both ends to determine how many whole months there are between them.

Upvotes: 3

Related Questions