2015C++第二周,任务七:以不同的形式输出日期,月份以英文显示,涉及类,构造函数等等,并限定月份只有12个月,日期与实际情况相同,如果输入错误则显示为0.

本文介绍了一个使用C++实现的日期类,该类能够验证日期的有效性并支持多种日期格式的输出,包括考虑闰年的特殊情况。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

任务七:以不同的形式输出日期,月份以英文显示,涉及类,构造函数等等,并限定月份只有12个月,日期与实际情况相同,如果输入错误则显示为0.

2-3

#include "stdafx.h"

#include <stdio.h>

#include<iostream>

#include<string>

using namespacestd;

class time{

    intx;

    inty;

    intz;

public:

    time(time&t);

    time(intD = 0, int M = 0, intY = 0);

    intgetx();

    string gety();

    int  getz();

   

};

time::time(intD, int M, int Y)

{

    x = D;

    y = M;

    z = Y;

}

int time::getx()

{

    intd,leap;

    switch(y){//选择月份

    case1:

    case3:

    case5:

    case7:

    case8:

    case10:

    case12:

    {if(x > 0 && x <= 31)

        d = x;

    else

        d = 0;

    }

        break;

   

    case4:

    case6:

    case9:

    case11:

    {if(x > 0 && x <= 30)

        d = x;

    else

        d = 0;

    }

        break;

    case2:

 

        if(z % 400 == 0)//年份能被400整除的是闰年

            leap= 1;

        elseif(z % 4 == 0 && z % 100 != 0)//年份能被4整除,但不能被100整除的是闰年

            leap= 1;

        else

            leap= 0;

    default:

        d=0;

        if(leap)

        {

            if(x > 0 && x <= 29)

                d= x;

            else

                d= 0;

        }

        else

        {

            if(x > 0 && x <= 28)

                d= x;

            else

                d= 0;

        }

 

    }

 

return d;

}

string time::gety()

{

    string m;

    switch(y)

    {

    case1:m = "January"; break;

    case2:m = "February"; break;

    case3:m = "March"; break;

    case4:m = "April"; break;

    case5:m = "May"; break;

    case6:m = "June"; break;

    case7:m = "July"; break;

    case8:m = "August"; break;

    case9:m= "September"; break;

    case10:m= "October"; break;

    case11:m= "November"; break;

    case12:m= "December"; break;

    }

    returnm;

}

int time::getz()

{

    intyear;

    if(z > 0 && z <= 9999)

        year =z;

    else

        year =0;

    returnyear;

}

time::time(time&t)

{

    cout<< "调用复制构造函数:" << endl;

    x = t.x;

    y = t.y;

    z = t.z;

 

}

 voidmain()

 {

     int a, b,c;

     cout << "请输入日期(年月日,c,b,a):"<< endl;

     cin >> c >> b >> a;

     time t(a, b,c);

     cout << "输出日期格式,年--日:" << t.getz() << "-"<< t.gety() << "-"<< t.getx() << endl;

     cout << "输出日期格式,月--年:" << t.gety() << "-"<< t.getx() << "-"<< t.getz() << endl;

     cout << "输出日期格式,月//年:" << t.gety() << "/"<< t.getx() << "/"<< t.getz() << endl;

     cout << "输出日期格式,月年:"<< t.gety() << " "<< t.getx() << " "<< t.getz() << endl;

     cout << "输出日期格式,日年:"<< t.getx() << " "<< t.gety() << " "<< t.getz() << endl;

     cout << "输出日期格式,日//年:" << t.getx() << "/"<< t.gety() << "/"<< t.getz() << endl;

     cout << "输出日期格式,月.年:" << t.gety() << "" << t.getx() << "."<< t.getz() << endl;

 }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值