万年历及查询万年历及查询
#include
#include
#include
#include
using namespace std;
struct CDateTime
{
public:
CDateTime();
void ShowTime()const;
void GetNowTime();
void NextTimeByAdd(int n);
void PrioTimeBySub(int n);
int GetDayByYearAndMon();
bool IsRunYear(int y);
i...
万年历及查询
#include
#include
#include
#include
using namespace std;
struct CDateTime
{
public:
CDateTime();
void ShowTime()const;
void GetNowTime();
void NextTimeByAdd(int n);
void PrioTimeBySub(int n);
int GetDayByYearAndMon();
bool IsRunYear(int y);
int GetDayByYearsubMon();
void printmonth(int m,int y,int week);
void printhead(int m,int week);
int daysofmonth(int m,int y);
int firstday(int m,int y,int week);
int Lunaryear(int nyear);
void showLunar(int ny);
void ShowYearday(int y_month,int y_day);
private:
int year;
int month;
int day;
int hour;
int minute;
int second;
};
/////////////////////////////////////////////////////
CDateTime::CDateTime() //初始化 {
year = 1;
month = 1;
day = 1;
hour = 0;
minute = 0;
second = 0;
}
/////////////////////////////////////////////////////
bool CDateTime::IsRunYear(int y) //判断闰年 {
if((y % 4 == 0 && y % 100!=0)
|| (y % 400 == 0))
{
return true;
}
else
{
return false;
}
}
//////////////////////////////////////////////////////
void CDateTime::GetNowTime() //获取现在的时间 {
time_t te;
struct tm *p;
time(&te);
p = localtime(&te);
year = p->tm_year + 1900;
month = p->tm_mon + 1;
day = p->tm_mday;
hour = p->tm_hour;
minute = p->tm_min;
second = p->tm_sec;
}
/////////////////////////////////////////////////////
void CDateTime::ShowTime()const //打印现在的时间 {
cout< mday)
{
month++;
if(month > 12)
{
year += 1;
month = 1;
}
n -= mday;
mday = GetDayByYearAndMon();
}
day += n;
}
/////////////////////////////////////////////////////
int CDateTime::GetDayByYearAndMon()//获取每个月的天数 {
int mday[13] = {29,31,28,31,30,31,30,31,31,30,31,30,31};
if(month == 2 && IsRunYear(year))
{
month = 0;
}
return mday[month];
}
/////////////////////////////////////////////////////
void CDateTime::PrioTimeBySub(int m)//求n天前的日期 {
if (m==day)
{
month--;
day=GetDayByYearsubMon();
}
else if(m!=day)
{
while(m>day)
{
m=m-day;
month--;
day = GetDayByYearsubMon();
if(month < 1)
{
year -= 1;
month = 12;
}
}
day -= m;
}
}
/////////////////////////////////////////////////////
int CDateTime::GetDayByYearsubMon()//获取每个月的天数 {
int mday[13] = {29,31,28,31,30,31,30,31,31,30,31,30,31};
if(month == 2 && IsRunYear(year))
{
return mday[0];
}
else if (month<1)
{
return mday[12];
}
else
{
return mday[month];
}
}
/////////////////////////////////////////////////////
void CDateTime::printmonth(int m,int y,int week)
{ //打印日历
int i,days;
printhead(m,week);
days=daysofmonth(m,y);
for(i=1;i<=days;i++)
{
cout<<"\t"<0)
{
Days=Days+daysofmonth(y_month,year);
y_month--;
}
Days+=y_day;
cout<<"今天是今年的第"<>val;
switch (val)
{
case 1:
{
CDateTime dt;
dt.GetNowTime();
dt.ShowTime();
}
break;
case 2:
{
CDateTime dt;
dt.GetNowTime();
dt.ShowTime();
int n;
cout<<"请输入要加的天数:"<>n;
dt.NextTimeByAdd(n);
dt.ShowTime();
}
break;
case 3:
{
CDateTime dt1;
dt1.GetNowTime();
int m;
cout<<"请输入要减的天数:"<>m;
dt1.PrioTimeBySub(m);
dt1.ShowTime();
cout<"<>my_year>>my_month;
weekday=dt3.firstday(my_month,my_year,1);
cout< ";
cin>>nyear;
int ny;
ny=dt4.Lunaryear(nyear);
dt4.showLunar(ny);
}
break;
case 6:
{
CDateTime dt5;
int y_month;
int y_day;
cout<<"请输入月日:>";
cin>>y_month>>y_day;
dt5.ShowYearday(y_month,y_day);
}
break;
case 7:
break;
default:
break;
}
}
}
本文档为【万年历及查询】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑,
图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。