#include"head.h" void datetimr(int date[3]) { struct tm* t = NULL; time_t timep = { 0 }; time(&timep); t = gmtime(&timep); date[0] = t->tm_year + 1900; date[1] = t->tm_mon + 1; date[2] = t->tm_mday; } int day_diff(int date1[3], int date2[3])//计算天数 { int y2, m2, d2; int y1, m1, d1; m1 = (date1[1] + 9) % 12; y1 = date1[0] - m1 / 10; d1 = 365 * y1 + y1 / 4 - y1 / 100 + y1 / 400 + (m1 * 306 + 5) / 10 + (date1[2] - 1); m2 = (date2[1] + 9) % 12; y2 = date2[0] - m2 / 10; d2 = 365 * y2 + y2 / 4 - y2 / 100 + y2 / 400 + (m2 * 306 + 5) / 10 + (date2[2] - 1); return (d2 - d1); }
时间: 2024-04-06 15:30:41 浏览: 18
这是一段 C 语言代码,实现了获取当前日期时间和计算两个日期之间的天数的功能。函数 datetimr(int date[3]) 获取当前日期时间,将年月日分别存放在数组 date 中。函数 day_diff(int date1[3], int date2[3]) 用于计算两个日期之间的天数,其中 date1 和 date2 分别存放两个日期的年月日。该函数使用了公式进行计算,返回值为两个日期之间的天数。
相关问题
struct tm *t = localtime(&now); 格式化时间
在 C 语言中,可以使用 `struct tm` 结构体来表示一个时间,其中包含了年、月、日、时、分、秒等信息。而要将一个时间格式化成一个字符串,可以使用 `strftime()` 函数。下面是一个示例代码:
```c
#include <stdio.h>
#include <time.h>
int main() {
time_t now = time(NULL);
struct tm *t = localtime(&now);
char buffer[80];
strftime(buffer, sizeof(buffer), "%Y-%m-%d %H:%M:%S", t);
printf("当前时间是:%s\n", buffer);
return 0;
}
```
在这个示例中,首先获取当前时间,然后使用 `localtime()` 函数将其转换为本地时间(`struct tm` 结构体)。接着使用 `strftime()` 函数将 `struct tm` 格式化为字符串,最后打印输出即可。`"%Y-%m-%d %H:%M:%S"` 是一个格式化字符串,用于指定输出的格式。具体的格式化字符串可以参考 `strftime()` 函数的文档。
struct tm *t = localtime(&now); 格式化时间小时分钟
要将时间格式化为小时和分钟的字符串,可以在 `strftime()` 函数的格式化字符串中使用 `%H` 表示小时,使用 `%M` 表示分钟。下面是示例代码:
```c
#include <stdio.h>
#include <time.h>
int main() {
time_t now = time(NULL);
struct tm *t = localtime(&now);
char buffer[80];
strftime(buffer, sizeof(buffer), "%H:%M", t);
printf("当前时间是:%s\n", buffer);
return 0;
}
```
在这个示例中,我们只保留了小时和分钟,并使用 `strftime()` 函数将其格式化为字符串。`"%H:%M"` 是一个格式化字符串,用于指定输出的格式。最后打印输出即可。