您的位置:首页 > 编程语言 > Java开发

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

2012-10-20 20:39 309 查看
为了准备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 integer string date class
相关文章推荐