随笔:给定一个日期:yyyy-mm-dd,求出给定日期的下一天日期并输出

为了准备itat,不得不把往年java的复赛题搜出来做做,今天做了第六届复赛题的A,B卷,总体感觉不难,看有人在问B卷的最后一道题的答案,现在将我的代码公布如下,希望有人可以帮忙找下bug,代码只是完成其要求的功能而已,没有做细节方面的异常处理!

题目是:编程实现输入格式为"yyyy-mm-dd"的字符串,获得一个给定的日期,计算此日期的下一天的日期并输出,程序验证的时候,要考虑任何日期是月底、年底、闰年的情况。

import java.util.Calendar;
import java.util.GregorianCalendar;

public class GetNextDayDemo
{

	/**
	 * @param args
	 */
	public static void main(String[] args)
	{
		// TODO Auto-generated method stub
		Calendar ca=new GregorianCalendar();
		int ye=ca.get(Calendar.YEAR);
		int mo=ca.get(Calendar.MONTH)+1;
		int da=ca.get(Calendar.DAY_OF_MONTH);
		String date=ye+"-"+mo+"-"+da;
		String[] dateArray=date.split("-");
		Integer year=Integer.valueOf(dateArray[0]);
		Integer month=Integer.valueOf(dateArray[1]);
		Integer day=Integer.valueOf(dateArray[2]);
		String nextDay=getNextDay(year,month,day);
		System.out.println("The next day is:"+nextDay);
		
	}
	public static String getNextDay(int year,int month,int day){
	
			//超过了当月的最大日期
			if((day+1)>getDaysInMonth(year,month)){
				if(month==12){
					return (year+1)+"-01-01";
				}
				else{
					return year+"-"+(month+1)+"-01";
				}
			}
			else{
				return year+"-"+month+"-"+(day+1);
			}

	}
	//通过年份和月份,确定对应的月份一共有多少天
	public static int getDaysInMonth(int year,int month){
		int days=0;
		if(month==1||month==3||month==5||month==7||month==8||month==10||month==12){
			days=31;
		}
		else if(month==2){
			if(isBissextile(year))days=29;
			else days=28;
		}else{
			days=30;
		}
		return days;
	}
	public static boolean isBissextile(int year){
		
		if((year%4==0&&year%100!=0)||(year%400==0))return true;
		return false;
	}

}


你可能感兴趣的:(java,Date,String,Integer,Class)