⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 10-6.cpp

📁 为初学者提供的最佳的C++程序设计源程序库
💻 CPP
字号:

#include<stdio.h>
class Date
{
  int year;
  int month;
  int day;
public:
	Date(int y,int m,int d)
	{
	  year=y;month=m;day=d;
	}
	void disp()
	{
	  printf("%d.%d.%d",year,month,day);
	}
	friend int count_day(Date &d,int);
	friend int leap(int year);
	friend int subs(Date &d1,Date &d2);
};
   int count_day(Date &d,int flag)
   {
	   static int day_tab[2][12]={{31,28,31,30,31,31,30,31,30,31},
	   {31,29,31,30,31,30,31,31,30,31,30,31}};
	   //使用二维数组存放各月天数,第一行对应非闰年,第二行对应闰年
	   int p,i,s;
	   if(leap(d.year))
		   p=1;
	   else
		   p=0;
	   if(flag)
	   {
	     s=d.day;
		 for(i=1;i<d.month;i++)
			 s+=day_tab[p][i-1];
	   }
	   else
	   {
	     s=day_tab[p][d.month]-d.day;
		 for(i=d.month+1;i<=12;i++)
			 s+=day_tab[p][i-1];
	   }
	   return(s);
   }
   int leap(int year)
   {
     if(year%4==0&&year%100!=0||year%400==0) //是闰年
		 return 0;
   }
   int subs(Date &d1,Date &d2)
   {
       int days,day1,day2,y;
	 if(d1.year<d2.year)
	 {
	   days=count_day(d1,0);
	   for(y=d1.year+1;y<d2.year;y++)
		   if(leap(y))
			   days+=366L;
		   else
		   days+=365L;
		   days+=count_day(d2,1);
	 }
	 else if (d1.year==d2.year)
	 {
	   day1=count_day(d1,1);
	   day2=count_day(d2,1);
	   days=day2-day1;
	 }
	 else
		 days=-1;
	 return days;
   }
void main()
{
   Date d1(2000,1,1),d2(2002,10,1);
   int ds=subs(d1,d2);
   printf("输出结果:\n");
   if(ds>=0)
   {
     d1.disp();printf("与");
	 d2.disp();printf("之间有%d天\n\n",ds);
   }
   else 
	   printf("时间错误!\n");
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -