求给定日期之前30天的日期
来源:百度知道 编辑:UC知道 时间:2024/05/18 23:09:28
那么就应该返回一个 2008-04-01
给定时间 2008-04-01
那么就应该返回一个 2008-03-02
给定时间 2008-04-30
那么就应该返回一个 2008-03-31
给定时间2008-03-01
那么就应该返回一个 2008-01-31
给定时间2007-03-01
那么就应该返回一个 2007-01-30
//要考虑到每月的天数不一样,闰年的二月会变化
能详细点吗?我想得到具体的值,format以后的样子是这样的2008-01-01,或者给个字符串也行~~~
import java.text.*;
import java.util.*;
public class Test {
public static void main(String[] args) {
SimpleDateFormat dfs = new SimpleDateFormat("yyyy-MM-dd"); // 设置日期格式
GregorianCalendar gc = new GregorianCalendar();
String nDate = "2008-03-01"; //给定时间
int size = -30; //30天之前
String lastDate; //得到换算后的时间串
Date date = null;
try {
date = dfs.parse(nDate); //把指定时间转为日期型
} catch (ParseException e) {
// TODO 自动生成 catch 块
e.printStackTrace();
}
gc.setTime(date); //注入指定时间
gc.add(Calendar.DATE, size); //30天之前的时间
String month = new Integer(gc.get(Calendar.MONTH) + 1).toString();
if (gc.get(Calendar.MONTH) + 1 < 10) {
month = "0" + month;
}
String day = new Integer(gc.get(Calendar.DATE)).toString();
if (gc.get(Calendar.DATE) < 10) {
day = "0&quo