zoukankan      html  css  js  c++  java
  • 第二次作业+105032014101

    1、测试帖链接

    http://www.cnblogs.com/ELPSY/p/6605831.html

    2、提出的建议

      该代码基本符合编码规则所需的正确性、稳定性、可读性的要求。

      程序出现错误的地方在对于2月份日期的判定上,以“2000  2  30”的输入语句符合年月日的三个输入条件,但是这并不是一个

    正确的日期,所以需要在“判断是否是闰年以及二月的最后一天的情况”这一判断模块中添加一个检查日期是否超出范围的判定。

    3、修改后的代码

    import java.util.Scanner;
    
    public class NextDateTest {
    
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
    		int month,year,day;
    		Scanner scan=new Scanner(System.in);
    		while(true){
    			//输入日期
    			System.out.println("请输入日期:");
    			System.out.print("Year=");
    			year=scan.nextInt();
    			System.out.print("Month=");
    			month=scan.nextInt();
    			System.out.print("Day=");
    			day=scan.nextInt();
    			
    			if(checkDate(year, month, day)){
    			//输出下一天的日期
    			System.out.println(nextDate(year, month, day));
    			}
    		}
    	}
    	//检查日期是否合法
    	public static boolean checkDate(int y,int m,int d){
    		//年份判断
    		if(y<1915||y>2050){
    			System.out.println("年份超出范围");
    			return false;
    		}
    		//月份判断
    		else if(m<1||m>12){
    			System.out.println("月份超出范围");
    			return false;
    		}
    		//判断日期
    		//判断闰年和非闰年二月最后一天
    		else if(((d<1||d>28)&&m==2&&!(y%4==0&&y%100!=0||y%400==0))||((d<1||d>29)&&m==2&&(y%4==0&&y%100!=0||y%400==0))){
    			System.out.println("日期超出范围");
    			return false;
    		}
    		//判断其他月最后一天
    		else if(((d<1||d>30)&&(m==4||m==6||m==9||m==11))||((d<1||d>31)&&(m==1||m==3||m==5||m==7||m==8||m==10||m==12))){
    			System.out.println("日期超出范围");
    			return false;
    		}
    		else {
    			return true;
    		}
    	}
    	//NextDate函数
    	public static String nextDate(int y,int m,int d){
    		//判断是否是闰年以及二月的最后一天的情况
    		if((d==28&&m==2&&!(y%4==0&&y%100!=0||y%400==0))||(d==29&&m==2&&(y%4==0&&y%100!=0||y%400==0))){
    			d=1;
    			m=3;
    		}
    		//其他月份最后一天的情况
    		else if((d==30&&(m==4||m==6||m==9||m==11))||(d==31&&(m==1||m==3||m==5||m==7||m==8||m==10||m==12))){
    			d=1;
    			m++;
    		}
    		//每个月不是最后一天的情况
    		else d++;
    		//一年最后一天的情况
    		if(m>12){
    			m=1;
    			++y;
    		}
    		return "NextDate:"+y+"年"+m+"月"+d+"日";
    	}
    }
    

    4、修正后心得体会

      根据测试者的建议增加了对二月以及小月天数的判定,改进了程序的功能,能够符合题意,符合实际。

  • 相关阅读:
    JVM内存管理概述与android内存泄露分析
    android中activity.this跟getApplicationContext的区别
    Android广播机制概述
    android中shape属性大全
    android studio视频教学
    四十六、android中的Bitmap
    访问限制:由于对必需的库 C:/Program Files/Java/jre6/lib/rt.jar 具有一定限制,因此无法访问类型。。
    优质博客内容链接
    java日期格式大全 format SimpleDateFormat
    java中equals与==的区别
  • 原文地址:https://www.cnblogs.com/xwhisper/p/6629297.html
Copyright © 2011-2022 走看看