java根据输入的日期(****年**月**日)计算输出第二天的日期。 如输入:1999年12月31日输出:2000年1月1日

如题所述

这个楼主可以自己编写一个java类的方法去获得。
import java.text.ParsePosition;
import java.text.SimpleDateFormat;
import java.util.Date;
/**
* @describe:
* @author: Nivana
* @version: V1.0 2010-12-20上午09:12:37 create
*/
public class Test {

/**
* 得到一个时间延后或前移几天的时间,nowdate为时间,delay为前移或后延的天数
* @param nowdate 输入的起始时间,格式为yyyy-mm-dd,例如1999-12-31
* @param delay 延迟天数,你的情况输入参数可为"1"。
* @return
*/
public String getNextDay(String nowdate, String delay) {
try {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
ParsePosition pos = new ParsePosition(0);
String mdate = "";
Date d = sdf.parse(nowdate,pos);
long myTime = (d.getTime() / 1000) + Integer.parseInt(delay) * 24 * 60 * 60;
d.setTime(myTime * 1000);
mdate = sdf.format(d);
return mdate;
} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException("The error is getNextDay."+e.getCause());

}
}

/**
* 测试方法
* @param args
*/
public static void main(String[] args) {
Test test = new Test();
System.out.println(test.getNextDay("1999-12-31", "1"));//输出2000-01-01
}
}
希望对你有帮助吧。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-12-20
你提问了两遍啊,这里我也给你答复了吧,上面那些人给的方法太麻烦了,还是用我给的方法吧:
//需要的包:
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.GregorianCalendar;
// 代码
GregorianCalendar gc = new GregorianCalendar();
gc.set(1999, 11, 31); // 这里月份从0开始,到11
gc.add(Calendar.DAY_OF_YEAR, 1);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
System.out.println(sdf.format(gc.getTime()));本回答被提问者采纳
第2个回答  2010-12-20
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;

public class FormatCDate {

/**
* @param args
* @throws ParseException
*/
public static void main(String[] args) throws ParseException {
// TODO Auto-generated method stub
System.out.println("请输入一个日期****年**月**日,如:2010年02月09日");
Scanner in = new Scanner(System.in);
String inDate = in.nextLine();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日");
Date inD = sdf.parse(inDate);
Date outD = new Date(inD.getTime() + 1000 * 60 * 60 * 24);
System.out.println(sdf.format(outD));
}

}
第3个回答  2010-12-20
/**
* 计算出离beginDate日期datas天的日期,若datas小于0表示当前日期之前datas天,若datas大于0表当前日期之后datas天
*
* @param 要计算的天数
* @return 得到日期
*/
public static Date getDate(Date beginDate, int datas) {
Calendar beginCal=Calendar.getInstance();
beginCal.setTime(beginDate);
GregorianCalendar calendar = new GregorianCalendar(beginCal.get(Calendar.YEAR),beginCal.get(Calendar.MONTH),beginCal.get(Calendar.DATE));
calendar.add(GregorianCalendar.DATE, datas);
String begin = new java.sql.Date(calendar.getTime().getTime()).toString();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date endDate = null;
try {
endDate = sdf.parse(begin);
} catch (ParseException e){}
return endDate;
}本回答被网友采纳
相似回答