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. Web(Easy UI)

    HTML菜鸟教程 http://www.runoob.com/html/html-tables.html EasyUI combobox下拉多选框的实现 https://www.cnblogs.com ...

  2. Nginx配置ProxyCache缓存

    利用nginx cache缓存网站数据 nginx本身就有缓存功能,能够缓存静态对象,比如图片.CSS.JS等内容直接缓存到本地,下次访问相同对象时,直接从缓存即可,无需访问后端静态服务器以及存储存储 ...

  3. Resetting the Root Password Using rd.break for RHEL7

    Start the system and, on the GRUB 2 boot screen, press the e key for edit. Remove the rhgb and quiet ...

  4. requirejs——config

    config 函数用于requirejs的配置信息.主要包括:baseUrl.paths: 一.baseUrl: 待续

  5. delphi IOS 后台状态保存

    FormSaveState procedure TFrm.FormSaveState(Sender: TObject);begin end; http://stackoverflow.com/ques ...

  6. deep learning and machine learning

    http://blog.csdn.net/xiangz_csdn/article/details/54580053

  7. Linux Centos 7 RabbitMQ 安装

    下载地址:http://www.rabbitmq.com/releases/rabbitmq-server/ 找到rabbitmq-server-3.6.15-1.el7.noarch.rpm 第一步 ...

  8. Linux系统构架 - HA集群配置

    一.安装 HA 即(high available)高可用,又被叫做双机热备,用于关键性业务. 简单理解就是,有两台机器 A 和 B,正常是 A 提供服务,B 待命闲置,当 A 宕机或服务宕掉,会切换至 ...

  9. 第六章 Validating with the Validation API

    CHAPTER 6 Validating with the Validation API Defining and Triggering Validation: An Overview 你可以使用以下 ...

  10. springboot 跳过单元测试

    <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-suref ...