c语言年月日的编程
时间: 2023-12-27 13:04:11 浏览: 27
以下是使用 C 语言编写的获取当前年月日的示例代码:
```c
#include <stdio.h>
#include <time.h>
int main() {
time_t t = time(NULL); // 获取当前时间
struct tm *tm = localtime(&t); // 将时间转换为本地时间
int year = tm->tm_year + 1900; // 年份要加上 1900
int month = tm->tm_mon + 1; // 月份从 0 开始,要加上 1
int day = tm->tm_mday; // 当月的第几天
printf("Today is %d-%02d-%02d\n", year, month, day);
return 0;
}
```
该代码首先使用 time 函数获取当前时间的时间戳,然后使用 localtime 函数将时间戳转换为本地时间(因为不同地区的时间可能不同),最后获取年月日并输出。需要注意的是,获取到的年份是从 1900 年开始计算的,月份是从 0 开始计算的,所以需要进行相应的加减操作。
相关问题
c语言编程,输入年月日,判断是什么中国传统节日
以下是一个简单的 C 语言程序,输入年月日,判断是什么中国传统节日:
```c
#include <stdio.h>
int main()
{
int year, month, day;
printf("请输入年月日(用空格分隔):");
scanf("%d %d %d", &year, &month, &day);
if (month == 1 && day == 1)
{
printf("元旦节\n");
}
else if (month == 2 && day == 2)
{
printf("龙抬头\n");
}
else if (month == 5 && day == 5)
{
printf("端午节\n");
}
else if (month == 8 && day == 15)
{
printf("中秋节\n");
}
else if (month == 10 && day == 1)
{
printf("国庆节\n");
}
else
{
printf("没有节日\n");
}
return 0;
}
```
程序中用 if 和 else if 语句分别判断输入的月份和日期是否与各个传统节日相符,如果相符则输出相应的节日名称,否则输出“没有节日”。其中,元旦节为每年的1月1日,龙抬头为每年的农历二月初二,端午节为每年的农历五月初五,中秋节为每年的农历八月十五,国庆节为每年的10月1日。
万年历c语言编程代码
以下是一个简单的万年历C语言编程代码,可以根据输入的年份和月份输出该月份的日历:
```c
#include <stdio.h>
int main()
{
int year, month, days, i, j, k;
printf("请输入年份和月份:");
scanf("%d%d", &year, &month);
printf(" %d月 %d年\n", month, year);
printf(" 日 一 二 三 四 五 六\n");
if (month == 2) // 二月的天数需要特判
{
if ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0))
days = 29;
else
days = 28;
}
else if (month == 4 || month == 6 || month == 9 || month == 11) // 小月
{
days = 30;
}
else // 大月
{
days = 31;
}
for (i = 1; i <= days; i++)
{
if (i == 1) // 输出第一行前面的空格
{
for (j = 1; j <= (getWeekday(year, month, 1) + 7) % 7; j++)
{
printf(" ");
}
}
printf("%2d ", i);
if ((getWeekday(year, month, i) + 1) % 7 == 0) // 每周的最后一天换行
{
printf("\n");
}
}
if ((getWeekday(year, month, days) + 1) % 7 != 0) // 输出最后一行后面的空格
{
for (k = 1; k <= 7 - (getWeekday(year, month, days) + 1) % 7; k++)
{
printf(" ");
}
}
return 0;
}
int getWeekday(int year, int month, int day)
{
if (month == 1 || month == 2)
{
month += 12;
year--;
}
int c = year / 100;
year %= 100;
int y = year;
int m = month;
int d = day;
int w = (y + y / 4 + c / 4 - 2 * c + 26 * (m + 1) / 10 + d - 1) % 7;
if (w < 0)
{
w += 7;
}
return w;
}
```
这个代码中,`getWeekday()` 函数根据输入的年月日计算出当天是星期几,然后在输出日历时根据这个函数的返回值来确定日期的位置。