c语言日期加减天数,日期计算器

一  完成的功能

注意:此日历只能用于计算1982年10月15日以及以后的日期

1.日期+/-天数=返回日期(处理:1.如果+/-一个负的天数的情况 2.如果加之后,或减之后的日期非法)

2.两个日期之间间隔的天数,日期-日期=返回的天数(处理:返回的天数不能为负)

3.打印某年某月本月的日历(处理:1982年十月份)

二 功能分析

6fab7706432204941a975964b1685ef3.png

三 项目测试点:

功能测试:

(1)对输入日期合法性的测试--------------------边界值等价类

1.年份是否合法

2.月份是否合法

3.天数是否合法

4.年份月份天数结合是否合法

(2)对日期+天数=返回日期功能的测试

1.对于普通月份加的测试

2.测试平年/闰年2月份加减的测试

3.对于加一个负数,是否可以处理

4.如果加上一个数,日期小于1582年10月15,是否处理

(3)对日期-天数=返回日期功能的测试

1.对于普通月份减的测试

2.测试平年/闰年2月份减的测试

3.对于减一个负数,是否可以处理

4.如果减上一个数,日期小于1582年10月15,是否处理

(4)对于日期-日期=日期的功能性测试

1.测试相减之后的日期是否合法

(5)对于输入日期,打印本月日历的功能性测试-------边界值/等价类

1.测试输入1582年10月的日历打印

2.测试大于1582年10月的日历打印

3.测试小于1582年10月即非法日期日历打印的测试

界面测试:

(1)界面是否美观,清楚

(2)如果输入错误,错误提示字样是否正常输出

(3)如果输入错误,是要重新输入本次,还是要全部重新输入

四  项目源码

class Date

{

friend ostream& operator<>(istream& is, Date& d);

public:

Date(int year = 1582, int month = 10, int day = 4)

{

_year = year;

_month = month;

_day = day;

}

void PrintfMonth()//打印该日期所在月份日历

{

if (_year == 1582 && _month == 10)

{

_PrintfMonthSpecial();

}

else

{

_PrintfMonth();

}

}

//d+10

Date operator+(int day)

{

Date ret(*this);

ret += day;

return ret;

}

Date operator-(int day)

{

Date ret(*this);

ret -= day;

return ret;

}

int operator-(const Date& d) //日期-日期=返回天数

{

int ret = DayNum( d);

return ret;

}

bool operator==(const Date& d)const //只要实现> ==其他的都可以全部复用

{<

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值