前提概述:
用c语言代码编写一个日期计算器思路:
1、首先我要确定二个年份之间天数(当成满年来看)。j1值
2、然后我们再来确定月份:
(第一种是前年份的月份小于后年份的月份)那我们就先不看二个年份的本月份(计算二个年份除本月外还剩月份的天数),然后我们再加上前月份剩的天数和后月份过的天数。(相加)(第一种j2值)
(第二种是前年份的月份大于后年份的月份)我们还是求出二个月份之间的天数,然后我们还是再加上前月份剩的天数和后月份过的天数。!但我们“注意”这些天数是多余出来的天数,所以等下我们要处理这些多余天数(减去)。(第二种j2值)
(第三种是前年份的月份等于后年份的月份)我们就进行第三步。
3、我们再注意考虑二个年份之间的本月关系(也就相当于前年份的月份等于后年份的月份的天数关系):
(第一种是前月份的日号小于或等于后年份的日号)我们算出二者之间相差的天数,加到我们确定天数中。(相加)(第三种j2值)
(第二种是前月份的日号大于后年份的日号)我们也算出二者之间相差的天数,只不过这也是多余天数,等下我们要减去。(减去)((第四种j*2值))
代码为:
#include<stdio.h>
#include<stdlib.h>
//先确定一个关于日期的结构体
typedef struct Date
{
int year;
int yue;
int r;
}Data;
//实现计算的函数
int Cha_zhi(Data s1,Data s2)
{
int i1,i2,i3,j1,j2=0;/*定义起始天数为0天*/
int sum;
//先计算年份
j1=s2.year-s1.year;
//找二个年份之间月份的天数(不包括二个年份的本月)
if(s1.yue>s2.yue)
{
i2=s1.yue;i3=s2.yue;}
else {
i2=s2.yue;i3=s1.yue;}
for(i2=i2+1;i2<i3;i2++)
{
switch(i2)
{
case 1: j2=j2+31;break;
case 2: j2=j2+28;break;
case 3: j2=j2+31;break;
case 4: j2=j2+30;break</