请使用c语言帮我完成题目:用一个8位正整数表示日期,其中前4位表示年,中间2位表示月,最后2位表示日。 #include<stdio.h> #include<string.h> #include<math.h> #include<ctype.h> #include<stdlib.h> int valid_date(int date) { int year,month,day; int mon[12]={31,28,31,30,31,30,31,31,30,31,30,31}; year=date/10000; month=date/100%100; day=date%100; if(month>12) return 2; mon[1]+=(year%4==0 && year%100!=0 || year%400==0); return day>mon[month-1]; } int main() { int first=20170901,last=20200510,date; int year,month,day,val,days; /**********Program**********/ /********** End **********/ printf("%u-%u共有%d天\n",first,last,days); return 0; }
时间: 2023-05-20 11:05:22 浏览: 227
c语言代码,输入年月日计算天数
好的,以下是用C语言实现的代码:
```c
#include <stdio.h>
int main() {
int date = 20211231; // 假设日期为2021年12月31日
int year = date / 10000; // 获取年份
int month = date % 10000 / 100; // 获取月份
int day = date % 100; // 获取日
printf("日期为:%d年%d月%d日\n", year, month, day);
return 0;
}
```
代码解释:
1. 首先定义一个8位正整数表示日期,假设日期为2021年12月31日,所以我们将其赋值为20211231。
2. 然后通过整除和取模运算获取年份、月份和日。其中,年份可以通过将日期除以10000得到;月份可以通过将日期对10000取模再除以100得到;日可以通过将日期对100取模得到。
3. 最后使用printf函数输出日期,格式为“年份月份日”。
希望能对您有所帮助!
阅读全文