首页 > 代码库 > UT源码 065 ( java version )
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 )
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。