【发布时间】:2020-11-01 00:36:55
【问题描述】:
在课堂上,我的教授给了我们一个额外的学分作业,如果我们愿意,我们可以做。我在其中的一部分上遇到了麻烦,因为她希望我们做一些我们在课堂上还没有学到的东西。问题是创建一个程序,在其中输入他们的生日,然后有一个函数可以显示他们的生日。我做了一些研究,发现我必须使用 time.h 的东西,而且我需要将他们的生日转换为 Epoch 时间并从今天的 Epoch 时间中减去。我不确定我的代码中的所有内容是如何工作的:(我也不必担心闰日)
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main() {
int month, day, year, AgeinDays;
printf("Enter birthday (mm): ");
scanf("%d", &month);
printf("Enter birthday (dd): ");
scanf("%d", &day);
printf("Enter birthday (yyyy): ");
scanf("%d", &year);
AgeinDays = calc_age(month, day, year);
printf("%d", AgeinDays);
}
int calc_age(int m, int d, int y) {
int DaysinMonth[12] = {31, 28, 31, 20, 31, 31, 31, 31, 30, 31, 30, 31};
struct tm t;
time_t t_of_day;
t.tm_year = //Need to subtract todays year form y
t.tm_mon = m;
t.tm_mday = d;
t.tm_isdst = -1;
t_of_day = mktime(&t);
printf("You are this many seconds old", (long) t_of_day);
}
【问题讨论】:
-
在 Linux 上,请参阅“man 7 time”以获得概述”和“man mktime”......这应该可以让您继续使用时间函数。