UT源码 065 ( java version )
Posted Tichocan
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了UT源码 065 ( java version )相关的知识,希望对你有一定的参考价值。
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日
package examOne; import java.util.Scanner; public class Date { String ia, ib, ic; int y, m, d; private boolean Read(){ Scanner sc = new Scanner(System.in); System.out.println("请输入年份"); ia = sc.nextLine(); if( "-1".equals(ia) ){ sc.close(); return false; } System.out.println("请输入月份"); ib = sc.nextLine(); System.out.println("请输入日期"); ic = sc.nextLine(); return true; } private boolean isInputInteger(){ try{ y = Integer.valueOf(ia).intValue(); m = Integer.valueOf(ib).intValue(); d = Integer.valueOf(ic).intValue(); return true; } catch( Exception e){ System.out.println("输入不符合要求,请输入三个整数"); return false; } } private boolean isInRange(){ if( m < 1 || m > 12 ){ System.out.println("月份超出范围"); return false; } if( d < 1 || d > 31 ){ System.out.println("日期超出范围"); return false; } if( y < 1912 || y > 2050 ){ System.out.println("年份超出范围"); return false; } return true; } private int isLeapYear(){ if( ( y % 4 == 0 && y % 100 != 0 ) || ( y % 400 == 0 ) ){ return 1; } return 0; } private boolean EndOfMouth( int flg ){ if( ( m == 1 || m == 3 || m == 5 || m == 7 || m == 8 || m == 10 || m == 12 ) && d == 31 ){ return true; } if( m == 2 && d == (28 + flg) ){ return true; } if( ( m == 4 || m == 6 || m == 9 || m == 11 ) && d == 30 ){ return true; } return false; } private String NextDate(){ int tag = 0; if( EndOfMouth( isLeapYear() ) ){ tag = 1; } if( m == 12 && tag == 1 ){ y++; m = 1; d = 1; } else if( tag == 1 ){ m++; d = 1; } else{ d++; } String ret = y + "年" + m + "月" + d + "日"; return ret; } public static void main( String args[]){ Date solve = new Date(); while( solve.Read() ){ if( solve.isInputInteger() && solve.isInRange() ){ System.out.println( solve.NextDate() ); } } } }
以上是关于UT源码 065 ( java version )的主要内容,如果未能解决你的问题,请参考以下文章