用c语言写一个万年历代码
时间: 2023-03-25 22:03:34 浏览: 69
好的,这是一个使用 C 语言编写的万年历代码的示例:
```
#include <stdio.h>
#include <time.h>
int main() {
time_t t = time(NULL);
struct tm tm = *localtime(&t);
printf("今天是 %d 年 %d 月 %d 日\n", tm.tm_year + 1900, tm.tm_mon + 1, tm.tm_mday);
return 0;
}
```
这段代码使用了 `time` 函数和 `localtime` 函数来获取当前的日期并打印出来。
希望这能帮到你!
相关问题
帮我用c语言使用51单片机写一个万年历代码
好的,您需要一个万年历的代码,使用C语言和51单片机来编写。以下是一个简单的示例代码,可以满足您的要求。
```c
#include <reg51.h>
unsigned char code month_days[12] = {31,28,31,30,31,30,31,31,30,31,30,31}; //每个月的天数
unsigned char code week_days[7] = {"Sun Mon Tue Wed Thu Fri Sat"}; //一周的天数
void delay(unsigned int time); //延时函数
void lcd_init(void); //初始化液晶屏
void lcd_clear(void); //清楚液晶屏
void lcd_write_command(unsigned char command); //写指令
void lcd_write_data(unsigned char data1); //写数据
void show_date(unsigned char week, unsigned char month, unsigned char day); //显示日期
void main()
{
unsigned char week = 0, month = 1, day = 1; //初始化为周一
unsigned char year = 21; //当前年份
unsigned char key;
lcd_init(); //初始化液晶屏
while(1)
{
//显示日期
show_date(week, month, day);
//获取按键值
key = P1;
//按键控制年月日
if(key == 0xfe) //上一年
{
year--;
if(year < 21) year = 99;
delay(500);
}
else if(key == 0xfd) //下一年
{
year++;
if(year > 99) year = 21;
delay(500);
}
else if(key == 0xfb) //上一月
{
month--;
if(month == 0) month = 12;
day = 1;
if(month == 2 && year%4 == 0)
month_days[1] = 29;
else
month_days[1] = 28;
week--;
if(week == -1) week = 6;
delay(500);
}
else if(key == 0xf7) //下一月
{
month++;
if(month > 12) month = 1;
day = 1;
if(month == 2 && year%4 == 0)
month_days[1] = 29;
else
month_days[1] = 28;
week++;
if(week == 7) week = 0;
delay(500);
}
else if(key == 0xef) //上一日
{
day--;
if(day == 0)
{
month--;
if(month == 0) month = 12;
day = month_days[month-1];
if(month == 2 && year%4 == 0)
month_days[1] = 29;
else
month_days[1] = 28;
}
week--;
if(week == -1) week = 6;
delay(50);
}
else if(key == 0xdf) //下一日
{
day++;
if(day > month_days[month-1])
{
month++;
if(month > 12) month = 1;
day = 1;
if(month == 2 && year%4 == 0)
month_days[1] = 29;
else
month_days[1] = 28;
}
week++;
if(week == 7) week = 0;
delay(50);
}
else //不操作
{
delay(50);
}
//清屏
lcd_clear();
}
}
//延时函数
void delay(unsigned int time)
{
unsigned int i,j;
for(i = 0;i < time;i++)
for(j = 0;j < 125;j++);
}
//初始化液晶屏
void lcd_init(void)
{
lcd_write_command(0x38); //设置显示模式
delay(20);
lcd_write_command(0x0c); //显示开关控制
delay(20);
lcd_write_command(0x06); //设置输入模式
delay(20);
lcd_write_command(0x01); //清屏,指针回到起点
delay(20);
}
//清楚液晶屏
void lcd_clear(void)
{
lcd_write_command(0x01); //清屏,指针回到起点
delay(20);
}
//写指令
void lcd_write_command(unsigned char command)
{
P2 = command;
P3 &= ~(0x01);
P3 |= 0x02;
delay(5);
P3 &= ~(0x02);
}
//写数据
void lcd_write_data(unsigned char data1)
{
P2 = data1;
P3 |= 0x01;
P3 |= 0x02;
delay(5);
P3 &= ~(0x02);
}
//显示日期
void show_date(unsigned char week, unsigned char month, unsigned char day)
{
unsigned char w = week;
lcd_write_data(year/10+'0');
lcd_write_data(year%10+'0');
lcd_write_data('/');
lcd_write_data(month/10+'0');
lcd_write_data(month%10+'0');
lcd_write_data('/');
lcd_write_data(day/10+'0');
lcd_write_data(day%10+'0');
lcd_write_data(' ');
while(w--)
lcd_write_data(' ');
lcd_write_data(week_days+(week*4));
}
```
这段代码使用了51单片机和液晶屏来实现一个简单的万年历,可以通过上下左右键来控制年、月、日,显示当前日期。需要注意的是,该代码只是一个示例,可能存在一些错误,您需要针对自己的需求进行修改完善。
用c语言编写万年历代码
好的,下面是用C语言编写的万年历代码:
```c
#include <stdio.h>
int main()
{
int year, month, day, days, i, leap;
int month_day[13] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
char week[7][10] = {"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"};
// 输入年月日
printf("Please input the date (year/month/day): ");
scanf("%d/%d/%d", &year, &month, &day);
// 计算天数
days = 0;
for (i = 1; i < month; i++)
{
days += month_day[i];
}
days += day;
// 判断是否为闰年
leap = 0;
if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0)
{
leap = 1;
month_day[2] = 29;
}
// 计算该年的1月1日是星期几
int y = year - 1;
int w = y + y / 4 - y / 100 + y / 400 + 1;
int week_day = w % 7;
// 输出结果
printf("\n");
printf(" %d-%d\n", year, month);
printf("--------------------\n");
printf(" Sun Mon Tue Wed Thu Fri Sat\n");
printf("--------------------\n");
for (i = 0; i < week_day; i++)
{
printf(" ");
}
for (i = 1; i <= month_day[month]; i++)
{
printf("%4d", i);
week_day++;
if (week_day % 7 == 0)
{
printf("\n");
}
}
printf("\n");
printf("%s\n", week[days % 7]);
printf("--------------------\n");
return 0;
}
```
这个代码可以实现输入年月日,然后输出该月的日历,并且输出该日是星期几。