NextDate函数问题

NextDate函数说明一种复杂的关系,即输入变量之间逻辑关系的复杂性

NextDate函数包含三个变量month、day和year,函数的输出为输入日期后一天的日期。 要求输入变量month、day和year均为整数值,并且满足下列条件:

条件1  1≤ month ≤12  否则输出,月份超出范围

条件2  1≤ day ≤31 否则输出,日期超出范围

条件3  1912≤ year ≤2050  否则输出:年份超出范围

String  nextdate(int m,int d,int y)

注意返回值是字符串。

程序要求:

1)先显示“请输入日期”

2)不满足条件1,返回:“月份超出范围”;不满足条件2,返回:“日期超出范围”;不满足条件3,返回:“年份超出范围”;如果出现多个不满足,以最先出现不满足的错误返回信息。

3)条件均满足,则输出第二天的日期:格式“****年**月**日”(如果输入2050年12月31日,则正常显示2051年1月1日

PS:

个人觉得这题题目有问题。按照月,日,年的顺序来判定。那么2月30日,或者平年出现2月29的日期。明显是错误的,但按题目要求使可以通过条件判定。本程序,按照题目要求进行编程,无法处理上述样例

源码:

#include <bits/stdc++.h>
const double eps = 1e-8;
using namespace std; string getstring ( const int n ){
std::stringstream newstr;
newstr<<n;
return newstr.str();
} int checkyear( int y ){
if( ( y % 4 == 0 && y % 100 != 0 ) || ( y % 400 == 0 ) ){
return 1;
}
return 0;
} bool endMonth( int m, int d , int flg ){
if( ( m == 1 || m == 3 || m == 5 || m == 7 || m == 8 || m == 10 || m == 12 ) && d == 31 ){
return 1;
}
if( m == 2 && d == (28 + flg) ){
return 1;
}
if( ( m == 4 || m == 6 || m == 9 || m == 11 ) && d == 30 ){
return 1;
}
return 0;
} string NextDate( int y, int m, int d ){
int d_flg;
d_flg = 0;
if( endMonth( m,d , checkyear( y )) ){
d_flg = 1;
}
if( m == 12 && d_flg == 1 ){
y++;
d = 1;
m = 1;
}
else if( d_flg ){
m++;
d = 1;
}
else{
d++;
}
string nxt = getstring(y) + "年" + getstring(m) + "月" + getstring(d) + "日";
return nxt; }
int main(){
int y, m, d;
printf("请输入日期:");
while( scanf("%d", &y), y + 1 ){
scanf("年%d月%d日", &m, &d );
if( m < 1 || m > 12 ){
puts("月份超出范围");
continue;
}
if( d < 1 || d > 31 ){
puts("日期超出范围");
continue;
}
if( y < 1912 || y > 2050 ){
puts("年份超出范围");
}
cout << NextDate( y, m, d ) << '\n';
}
return 0;
}

  

UT源码 065的更多相关文章

  1. UT源码 005

    NextDate函数问题 NextDate函数说明一种复杂的关系,即输入变量之间逻辑关系的复杂性 NextDate函数包含三个变量month.day和year,函数的输出为输入日期后一天的日期. 要求 ...

  2. UT源码105032014093

    需求描述: 设计佣金问题的程序 commission方法是用来计算销售佣金的需求,手机配件的销售商,手机配件有耳机(headphone).手机壳(Mobile phone shell).手机贴膜(Ce ...

  3. UT源码+105032014070

    设计三角形问题的程序 输入三个整数a.b.c,分别作为三角形的三条边,现通过程序判断由三条边构成的三角形的类型为等边三角形.等腰三角形.一般三角形(特殊的还有直角三角形),以及不构成三角形.(等腰直角 ...

  4. UT源码105032014098

    (2)NextDate函数问题 NextDate函数说明一种复杂的关系,即输入变量之间逻辑关系的复杂性 NextDate函数包含三个变量month.day和year,函数的输出为输入日期后一天的日期. ...

  5. UT源码-124

    (1)设计三角形问题的程序 输入三个整数a.b.c,分别作为三角形的三条边,现通过程序判断由三条边构成的三角形的类型为等边三角形.等腰三角形.一般三角形(特殊的还有直角三角形),以及不构成三角形.(等 ...

  6. UT源码 105032014098

    package exam1; import java.util.Scanner; public class test01 { static String nextDate(int year,int m ...

  7. UT源码_105032014033

    需求描述: 设计佣金问题的程序 commission方法是用来计算销售佣金的需求,手机配件的销售商,手机配件有耳机(headphone).手机壳(Mobile phone shell).手机贴膜(Ce ...

  8. UT源码+019

    设计三角形问题的程序 输入三个整数a.b.c,分别作为三角形的三条边,现通过程序判断由三条边构成的三角形的类型为等边三角形.等腰三角形.一般三角形(特殊的还有直角三角形),以及不构成三角形.(等腰直角 ...

  9. UT源码162

    (3)设计佣金问题的程序 commission方法是用来计算销售佣金的需求,手机配件的销售商,手机配件有耳机(headphone).手机壳(Mobile phone shell).手机贴膜(Cellp ...

随机推荐

  1. Tkinter Checkbutton

    Python - Tkinter Checkbutton: checkbutton小部件用于显示切换按钮的用户多项选择.然后,用户可以通过点击相应的按钮每个选项中选择一个或多个选项.   checkb ...

  2. hadoop性能测试

    一.hadoop自带的性能基准评测工具 (一)TestDFSIO 1.测试写性能 (1)若有必要,先删除历史数据 $hadoop jar /home/hadoop/hadoop/share/hadoo ...

  3. ubuntu时区设置

    local-gen zh_CN.UTF-8 UTF-8 /var/lib/locales/supported.d/local可以看到如下内容: zh_CN.UTF-8 UTF-8 en_US.UTF- ...

  4. Hp培训学习注册攻略

    输入h20507.www2.hp.com/Saba/Web/Main用以注册的Hp partner portnal账户登入,

  5. 完美解决 开机无法启动 提示0xc000000e

    注:昨天装系统碰到这个问题,这个方法说的较详细,我的是WIN7系统,开机提示引导文件错误,代码为0xc000000e 无法进入系统,使用PE进入后,在运行里输入CMD,然后按下文红字开始操作 完美解决 ...

  6. django模版 常用变量

    在request中有很多有用的东西,如下: 获取当前用户: 1 {{ request.user }} 如果登陆就显示内容,不登陆就不显示内容: 1 2 3 4 5 {% if request.user ...

  7. An Intuitive Explanation of Fourier Theory

    Reprinted from: http://cns-alumni.bu.edu/~slehar/fourier/fourier.html An Intuitive Explanation of Fo ...

  8. C++ new到底new什么

    VS2010-Debug版本 9: int *obj = new int(6); 00F714CE push //压栈 00F714D0 call operator new (0F711EAh) // ...

  9. JDBC模板对象是多例的

  10. Git 将本地代码推到 Coding 远程仓库

    1 首先创建文件夹,将要推的项目文件夹拷贝过来,进入文件夹 右键 Git Bash Here 输入以下代码 把这个目录变成git管理的仓库 git init 2 把文件添加到版本库中,使用命令 git ...