用c语言编程:计算未来天数和星期:输入未来某天的日期,输出距今天还有多少天?是星期几?并回答设计思想 及 定义的函数及其说明(写出每个函数的函数首部,并说明该函数的功能及其各个形参的含义,并图示函数间的调用关系)
时间: 2024-05-06 08:19:02 浏览: 22
设计思想:
1. 首先输入未来某天的日期,计算出该日期距离今天的天数。
2. 然后根据距离今天的天数计算出是星期几。
定义的函数及其说明:
1. get_days(int year, int month, int day):计算输入日期距离今天的天数。
- year:输入日期的年份。
- month:输入日期的月份。
- day:输入日期的天数。
- 返回值:距离今天的天数。
2. get_weekday(int year, int month, int day):计算输入日期是星期几。
- year:输入日期的年份。
- month:输入日期的月份。
- day:输入日期的天数。
- 返回值:星期几。
函数间的调用关系:
get_days()函数会调用get_weekday()函数。
下面是完整的C语言代码实现:
```c
#include <stdio.h>
// 函数声明
int get_days(int year, int month, int day);
int get_weekday(int year, int month, int day);
int main()
{
int year, month, day;
printf("请输入未来某天的日期(年 月 日,用空格隔开):");
scanf("%d %d %d", &year, &month, &day);
int days = get_days(year, month, day);
int weekday = get_weekday(year, month, day);
printf("距离今天还有%d天,是星期%d\n", days, weekday);
return 0;
}
// 函数定义
int get_days(int year, int month, int day)
{
int days = 0;
int month_days[] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
// 计算年份天数
for (int i = 1970; i < year; i++)
{
if ((i % 4 == 0 && i % 100 != 0) || i % 400 == 0)
{
days += 366;
}
else
{
days += 365;
}
}
// 计算月份天数
for (int i = 1; i < month; i++)
{
days += month_days[i - 1];
if (i == 2 && ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0))
{
days += 1;
}
}
// 计算天数
days += day;
return days - get_days(1970, 1, 1);
}
int get_weekday(int year, int month, int day)
{
int days = get_days(year, month, day);
return (days + 4) % 7 + 1;
}
```
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)