首页 > 编程语言 >c++小程序/类Date

c++小程序/类Date

时间:2023-11-23 13:02:40浏览次数:52  
标签:cout int 31 程序 c++ month tm year Date

声明类Date

要求:

1、使用户可以设置日期,并在输入错误时提示。

a一年12个月,若输入12以外的数,提示“输入月份错误”

b每个月依次有{31,28/29,31,30,31,30,31,31,30,31,30,31}若输入的数值超过该月天数,提示“输入天数错误”。

2、可以查询两个日期之间相差天数

注意:闰年


Code
#include <iostream>
using namespace std;
#include<time.h>
class Date
{   public:
    Date(int,int,int);
    int Leapyear(int);
    double days();
  private:
    int day,month,year;
};

void main()
{   int day,month,year;
  cout<<"请您输入年、月、日 ";
  cin>>year>>month>>day;
  Date date(day,month,year);
  cout<<date.days()<<endl;

}

Date::Date(int day, int month, int year)
{   if (year<0)
  {   cout<<"您所输入的年份不在本程序计算范围之内!"<<endl;
    return ;
  }
  if(month>12||month<1) 
  {   cout<<"您输入的月份有误 "<<endl;   
    return;
  }
  if((month==1||month==3||month==5||month==7||month==8||month==10||month==12))
  {   if(day<1||day>31)
    {   cout<<"您输入的天数有误,"<<endl;
        return;
    }
  }
  if(month==4||month==6||month==9||month==11)
  {   if(day<1||day>30)
    {   cout<<"您输入的天数有误,"<<endl;
        return;
    }
  }
  if(month==2&&(Leapyear(year)))
  {   if(day<1||day>29)
    {   cout<<"您输入的天数有误,"<<endl;
        return;
    }
  }
  if(month==2&&(!Leapyear(year)))
  {   if(day<1||day>28)
    {   cout<<"您输入的天数有误,"<<endl;
        return;
    }
  }
  this->day=day;
  this->month=month;
  this->year=year;
  cout<<"公元"<<year<<"年"<<month<<"月"<<day<<"日"<<endl;
}
inline double Date:: days()
  { struct tm time1,time2; 
    int year;
    int month;
    cout<<"请输入年月日\n";
    cout<<"年:";
    cin>>year;
    time1.tm_year=year-1900;

    cout<<"月:";
    cin>>month;
    time1.tm_mon=month+1;

    cout<<"日:";
    cin>>time1.tm_mday;

    time1.tm_hour=0;
    time1.tm_min=0;
    time1.tm_sec=0;

    cout<<"----------------"<<endl;

    cout<<"年:";
    cin>>year;
    time2.tm_year=year-1900;

    cout<<"月:";
    cin>>month;
    time2.tm_mon=month+1;

    cout<<"日:";
    cin>>time2.tm_mday;
    cout<<"相差天数为:";

    time2.tm_hour=0;
    time2.tm_min=0;
    time2.tm_sec=0;

    return (mktime(&time2)-mktime(&time1))/(24*60*60.0);
}

inline int Date::Leapyear(int year)
{   if(((year%4==0)&&(year%100!=0))||(year%400==0))
    return true;
  else return false;
}



标签:cout,int,31,程序,c++,month,tm,year,Date
From: https://blog.51cto.com/u_16317510/8527118

相关文章

  • c++小程序/数组排序
    数组排序1、定义交换两个整型数的函数swap2、定义sort函数给数组排序,调用swap函数Code#include<iostream.h>template<classT>voidswap(T&x,T&y){Ttemp;temp=x;x=y;y=temp;}template<classp>voidsort(p*a,pb){for(inti=0;i<10;i++){......
  • c++小程序/输入三个数,判断能不能组成三角形
    输入三个数,判断能不能组成三角形要求:1、输入-1,0,-1,提示“你输入的为负数”2、输入1,2,3,提示“你输入的三个数不能组成三角形”3、输入3,4,5提示“输入的三个数能组成三角形,并且是一个直角三角形”4、输入3,3,4提示“输入的三个数能组成三角形,并且是一个等腰三角形”1、 输入3,3,3提示“输......
  • java中LocalDate、Calendar、Date类型进行加减
    java三种类型的加减,LocalDate、Calendar、Date@目录1.LocalDate类型加减:2.Calendar加减:3.Date类型加减1.LocalDate类型加减:以下是LocalDate类进行日期加减:importjava.time.LocalDate;importjava.time.temporal.ChronoUnit;publicclassDateDemo{publicstatic......
  • flink入门程序
    flink入门程序生成项目mvnarchetype:generate-DarchetypeGroupId=org.apache.flink-DarchetypeArtifactId=flink-quickstart-java-DarchetypeVersion=1.16.4wordcount入门教程socket进程收集数据#terminal运行nc-lk9999javaflink处理importorg.apa......
  • 记录 Linux zstd测试程序
    系统版本[root@localhost~]#cat/etc/redhat-releaseCentOSLinuxrelease7.9.2009(Core)1.linux命令行环境下如何从github上获取源代码直接gitclone项目的github地址(http开头),如gitclone https://github.com/facebook/zstd.git 2.Linux安装cmake3.......
  • pandas datetime 获取当前时间之前一个月的时间
    在Python中,我们可以使用pandas和datetime模块来获取当前日期之前一个月的时间。以下是一个示例:使用pandas:importpandasaspdfrompandas.tseries.offsetsimportDateOffset#获取当前日期now=pd.to_datetime('today')#计算一个月前的日期one_month_ago=now-DateOf......
  • c++(4)
    C++(4)1.C++模板1.1模板的概论C++提供了函数模板(functiontemplate),函数模板是将函数的参数类型不具体化,在函数使用时,再给定具体的参数的数据类型。C++给定两个模板机制:函数模板和类模板【注】都属于参数类型的模板,又称之为参数模板1.2函数模板函数模板可以自动推......
  • 前端学习-JavaScript学习-JavaScript高级程序设计-第3章笔记
    第3章基础概念数据类型Number<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metahttp-equiv="X-UA-Compatible"content="IE=edge"><metaname="viewport"......
  • ThinpPHP5.0 微信小程序登录
    创建WxUserModel类<?phpnamespaceapp\api\model;useapp\common\controller\Api;usethink\Model;//引入tp框架的Model类usethink\Db;//引入tp框架的Db类usethink\Cache;//引入tp框架的缓存类classWxuserextendsApi{private$appId;private......
  • Date、Calendar(日历对象)、LocalDateTime三大时间日期类的各种处理方式【精选集】
    Date类:1.1、将字符串型时间日期转化为date类型StringtimeString="2023-11-1709:27:00";SimpleDateFormatsdf=newSimpleDateFormat("yyyy-MM-ddHH:mm:ss");//创建"简单时间格式化"对象,格式为:yyyy-MM-ddHH:mm:sstry{D......