UT源码_161

(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 test1;
  2 import java.util.Scanner;
  3 public class Test1 {
  4     public static void main(String[] args){
  5         int year;
  6         int month;
  7         int day;
  8         while(true){
  9         
 10             System.out.println("请输入日期:");
 11             Scanner sc = new Scanner(System.in);
 12             System.out.print("年:");
 13             year = sc.nextInt();
 14             System.out.print("月:");
 15             month=sc.nextInt();
 16             System.out.print("日:");
 17             day=sc.nextInt();            
 18             if(year>2050||year<1912)
 19             {
 20                 System.out.println("年份超出范围!\n");
 21                 continue;
 22             }
 23             if(month>12||month<1)
 24             {
 25                 System.out.println("月份超出范围!\n");
 26                 continue;
 27 
 28             }
 29             if(day>31||day<1)
 30             {
 31                 System.out.println("日期超出范围!\n");
 32                 continue;
 33             }
 34             String date=NextDay(year,month,day); 
 35             System.out.println(date);
 36             System.out.println("\n是否继续?1 or -1:");
 37             sc.nextLine();
 38             String conn=sc.nextLine();
 39             if(conn.equals("-1")){
 40                 System.out.println("感谢使用!");
 41                 return;
 42             }
 43         }
 44     }
 45     static String NextDay(int year,int month,int day){
 46         if ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0))
 47                 {
 48                     if (month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10 ||( month == 12 && day<31))
 49                     {
 50                         if (day < 31)
 51                             day++;
 52                         else if (day == 31)
 53                         {
 54                             month++;
 55                             day =1;
 56                         }
 57 
 58                     }
 59                     else if (month == 12 && day == 31)
 60                     {
 61                         year++;
 62                         month = 1;
 63                         day = 1;
 64                     }
 65                     else if (month == 4 || month == 6 || month == 9 || month == 11)
 66                     {
 67                         if (day < 30)
 68                             day++;
 69                         else if (day == 30)
 70                         {
 71 
 72                             month++;
 73                             day = 1;
 74                         }
 75 
 76                     }
 77                     else  if (month == 2)
 78                     {
 79                         if (day < 29)
 80                             day++;
 81                         else if (day == 29)
 82                         {
 83                             month++;
 84                             day = 1;
 85                          }
 86                      }
 87                  }
 88                 else
 89                 {
 90                     if (month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10 || (month == 12 && day < 31))
 91                     {
 92                         if (day < 31)
 93                             day++;
 94                         else if (day == 31)
 95                         {
 96                             month++;
 97                             day = 1;
 98                         }
 99 
100                     }
101                     else if (month == 12 && day == 31)
102                     {
103                         year++;
104                         month = 1;
105                         day = 1;
106                     }
107                     else if (month == 4 || month == 6 || month == 9 || month == 11)
108                     {
109                         if (day < 30)
110                             day++;
111                         else if (day == 30)
112                         {
113 
114                             month++;
115                             day = 1;
116                         }
117 
118                     }
119                     else if (month == 2)
120                     {
121                         if (day < 28)
122                             day++;
123                         else if (day == 28)
124                         {
125                             month++;
126                             day = 1;
127                         }
128                     }
129                 }
130             
131         return "第二天:"+year+"年"+month+"月"+day+"日";
132     }
133 }

 

posted @ 2017-03-10 14:49  wowowowww  阅读(308)  评论(0编辑  收藏  举报