You can find out how many seconds have elapsed since Jan 1 1
You can find out how many seconds have elapsed since Jan 1, 1970 using the time() function. #include now = time(NULL); // now is more than a billion seconds (which data type should you use?) Write a program that estimates how many years, months, weeks, days, and hours have gone by since Jan 1 1970 by calculations with the number of seconds that have passed. The number of months must be less than 12, i.e., take out how many years have gone by first, then how many months are left, then weeks, etc. Assume that all years have 365 days, and all months have 30.42 days. Don’t use a calculator , or any web site that reports the number of seconds in a month, etc. – your C program can calculate anything that you need. Notice that this is an assignment on using arithmetic in C. Hints. How many seconds are in a minute? hour? A day? A week? A month? A year?
Solution
#include <stdio.h>
#include <time.h>
#include <math.h>
#define SEC_MIN 60
#define MIN_HOUR 60
#define HOUR_DAY 24
#define DAY_MONTH 30.42
#define DAY_YEAR 365
int main(){
double now = time(NULL);
int minutes, hours, days, weeks, months, years;
minutes = now/SEC_MIN;
hours = minutes/MIN_HOUR;
days = hours / HOUR_DAY;
years = days / DAY_YEAR;
months = fmod((years*12), 30.42) - 3;
weeks = days / 7;
printf(\"\ \ It has been %d years, %d months, %d weeks, %d days, and %d hours since January 1, 1970.\ \ \", years, months, weeks, days, hours);
return 0;
}
It has been 46 years, 1 months, 2406 weeks, 16844 days, and 404260 hours since January 1, 1970.
