首页 > 代码库 > UT源码105032014098

UT源码105032014098

(2)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日

技术分享
 1 package exam1;
 2 
 3 import java.util.Scanner;
 4 
 5 
 6 public class test01 {
 7     static String NextDate(int year,int month,int day){
 8         if(((year%4==0&&year%100!=0)||year%400==0)&&month==2)
 9         {    
10             if(day==29){day=1;month++;}
11             else day++;
12         }
13         else if(month==12)
14         {
15             if(day==31){
16             day=1;
17             month=1;
18             year++;
19             }
20             else day++;
21         }
22         else if(month==1||month==3||month==5||month==7||month==8||month==10)
23         {
24             if(day==31)
25             {
26                 day=1;
27                 month++;
28             }
29             else day++;
30         }
31         else if(month==2||month==4||month==6||month==11||month==12&&day==30)
32         {
33                 day=1;
34                 month++;
35         }
36             else day++;
37         String date="后一天的日期是:"+year+"年"+month+"月"+day+"日";
38         return date;
39     }
40 
41     public static boolean check(int y,int m,int d){
42         if(y<1915||y>2050){
43             System.out.println("年份超出范围");
44             return false;
45         }
46         else if(d<1||d>31||(m==2&&d>29)){
47             System.out.println("日期超出范围");
48             return false;
49         }
50         else if(m<1||m>12){
51             System.out.println("月份超出范围");
52             return false;
53         }
54         else {
55             return true;
56         }
57     }
58     
59     //main方法
60     public static void main(String[] args) {
61     while(true){
62     System.out.println("----请输入日期---");
63     Scanner scanner=new Scanner(System.in);
64     System.out.print("请输入年份:");
65     int year=scanner.nextInt();
66     System.out.print("请输入月份:");
67     int month=scanner.nextInt();
68     System.out.print("请输入日期:");
69     int day=scanner.nextInt();
70     if(check(year, month, day)){
71         System.out.println(NextDate(year, month, day));
72     }
73     }
74 }
75     
76 }
View Code

 

UT源码105032014098