c语言获取当前日期星期时间
时间: 2023-06-28 11:10:59 浏览: 276
在C语言中,可以使用time.h头文件中的函数来获取当前日期和时间。以下是一个示例代码,获取当前日期和星期几:
```c
#include <stdio.h>
#include <time.h>
int main() {
time_t current_time;
struct tm* time_info;
char date_string[11];
char day_string[10];
time(¤t_time);
time_info = localtime(¤t_time);
strftime(date_string, sizeof(date_string), "%Y-%m-%d", time_info);
strftime(day_string, sizeof(day_string), "%A", time_info);
printf("Current date: %s\n", date_string);
printf("Today is %s\n", day_string);
return 0;
}
```
该程序使用time()函数获取当前时间,并使用localtime()函数将其转换为本地时间。然后,使用strftime()函数将日期字符串和星期字符串格式化为所需的格式,并打印它们。
相关问题
c语言获取当前日期星期时间时分秒
可以使用 time.h 头文件中的 time() 函数和 localtime() 函数来获取当前日期、星期、时间、时分秒等信息。代码如下:
```c
#include <stdio.h>
#include <time.h>
int main()
{
// 获取当前时间
time_t now = time(NULL);
// 转换为本地时间
struct tm *local_time = localtime(&now);
// 输出日期
printf("Date: %04d-%02d-%02d\n", local_time->tm_year + 1900, local_time->tm_mon + 1, local_time->tm_mday);
// 输出星期
printf("Weekday: %d\n", local_time->tm_wday);
// 输出时间
printf("Time: %02d:%02d:%02d\n", local_time->tm_hour, local_time->tm_min, local_time->tm_sec);
return 0;
}
```
运行结果如下:
```
Date: 2021-09-08
Weekday: 3
Time: 11:20:35
```
其中,星期的输出是以 0 表示星期天,1 表示星期一,以此类推,6 表示星期六。
C语言 获取当前日期并打印输出当月日历
获取当前日期可以使用 C 语言中的 time.h 库中的 time() 函数,该函数返回从 1970 年 1 月 1 日 0 时 0 分 0 秒(UTC,即格林威治时间)到现在所经过的秒数。获取当前日期的代码如下:
```c
#include <stdio.h>
#include <time.h>
int main() {
time_t t = time(NULL);
struct tm *now = localtime(&t);
int year = now->tm_year + 1900; // 年份需要加上 1900
int month = now->tm_mon + 1; // 月份从 0 开始,需要加上 1
int day = now->tm_mday;
printf("当前日期:%d 年 %d 月 %d 日\n", year, month, day);
return 0;
}
```
接下来是如何打印输出当月日历的问题。可以使用以下算法:
1. 获取当月第一天是星期几。
2. 打印日历表头。
3. 根据当月天数和第一天是星期几,打印日历表格。
具体代码如下:
```c
#include <stdio.h>
#include <time.h>
int main() {
time_t t = time(NULL);
struct tm *now = localtime(&t);
int year = now->tm_year + 1900;
int month = now->tm_mon + 1;
int day = now->tm_mday;
// 获取当月第一天是星期几
struct tm first_day = *now;
first_day.tm_mday = 1; // 从第一天开始
mktime(&first_day); // 计算
int first_day_weekday = first_day.tm_wday; // 星期几,0 表示周日,1 表示周一,以此类推
// 打印表头
printf(" %d 年 %d 月\n", year, month);
printf("日 一 二 三 四 五 六\n");
// 打印当月日历
int i, j;
for (i = 0; i < first_day_weekday; i++) {
printf(" "); // 填充空格
}
for (j = 1; j <= 31; j++) {
if (j > 1 && j <= day) {
printf("%2d ", j); // 用两个字符的宽度打印日期
} else {
printf("%2s ", ""); // 填充空格
}
if ((j + first_day_weekday) % 7 == 0) {
printf("\n"); // 每周换行
}
if (j > 28 && j >= now->tm_mday) {
break; // 当月日期已经打印完毕
}
}
return 0;
}
```
注意,这个算法没有考虑闰年的情况,也没有考虑每个月的天数不同的情况。如果需要支持这些功能,需要进行更复杂的计算。
阅读全文