java.util.Date xx=new java.util.Date();
myyear=xx.getYear();
mymonth=xx.getMonth();
myday=xx.day();
if(mymonth==1)
{
xx.setYear(myyear-1);
xx.setMonth(12)
}
else
xx.setMonth(mymonth-1)l
myyear=xx.getYear();
mymonth=xx.getMonth();
myday=xx.day();
if(mymonth==1)
{
xx.setYear(myyear-1);
xx.setMonth(12)
}
else
xx.setMonth(mymonth-1)l
import java.util.Date;
import java.text.*;
public class DateDealWith
{
public DateDealWith(){
}
//取得系统当前时间,格式为yyyy-mm-dd
public String getCurrentDate(){
Calendar rightNow = Calendar.getInstance();
int year=rightNow.get(rightNow.YEAR);
int month=rightNow.get(rightNow.MONTH)+1;
int day=rightNow.get(rightNow.DATE);
return year+"-"+month+"-"+day;
}
//取得系统当前时间,格式为yyyy年mm月dd日
public String getCurrentDate1(){
Calendar rightNow = Calendar.getInstance();
int year=rightNow.get(rightNow.YEAR);
int month=rightNow.get(rightNow.MONTH)+1;
int day=rightNow.get(rightNow.DATE);
return year+"年"+month+"月"+day+"日";
}
//取得系统当前时间前n个月的相对应的一天
public String getNMonthBeforeCurrentDay(int n){
Calendar c = Calendar.getInstance();
c.add(c.MONTH,-n);
return ""+c.get(c.YEAR)+"-"+(c.get(c.MONTH)+1)+"-"+c.get(c.DATE); }
//取得系统当前时间后n个月的相对应的一天
public String getNMonthAfterCurrentDay(int n){
Calendar c = Calendar.getInstance();
c.add(c.MONTH,n);
return ""+c.get(c.YEAR)+"-"+(c.get(c.MONTH)+1)+"-"+c.get(c.DATE); }
//取得系统当前时间前n天,格式为yyyy-mm-dd
public String getNDayBeforeCurrentDate(int n){
Calendar c = Calendar.getInstance();
c.add(c.DAY_OF_MONTH,-n);
return ""+c.get(c.YEAR)+"-"+(c.get(c.MONTH)+1)+"-"+c.get(c.DATE);
}
//取得系统当前时间后n天,格式为yyyy-mm-dd
public String getNDayAfterCurrentDate(int n){
Calendar c = Calendar.getInstance();
c.add(c.DAY_OF_MONTH,n);
return ""+c.get(c.YEAR)+"-"+(c.get(c.MONTH)+1)+"-"+c.get(c.DATE);
}
//---------------------------------------------------------------------
//取过去一个时间对应的系统当年的一天
public String getCurrentDateAfterPastDate(String sPastDate){
if(sPastDate!=null && !sPastDate.equals("")){
Date date=switchStringToDate(sPastDate);
Calendar c = Calendar.getInstance();
c.setTime(date);
int iPastYear=c.get(c.YEAR);
Calendar c1 = Calendar.getInstance();
int iCurrentYear=c1.get(c1.YEAR);
c.add(c.YEAR,iCurrentYear-iPastYear);
return ""+c.get(c.YEAR)+"-"+(c.get(c.MONTH)+1)+"-"+c.get(c.DATE);
}else{
return null;
}
}
//-----------------------------------------------------------------
//将一个日期字符串转化成日期
public Date switchStringToDate(String sDate){
Date date=null;
try{
SimpleDateFormat df=new SimpleDateFormat("yyyy-MM-dd");
date=df.parse(sDate);
}catch(Exception e){
System.out.println("日期转换失败:"+e.getMessage());
}
return date;
} //输入两个字符串型的日期,比较两者的大小
public boolean compareTwoDateBigOrSmall(String fromDate,String toDate){
Date dateFrom = this.switchStringToDate(fromDate);
Date dateTo = this.switchStringToDate(toDate);
if(dateFrom.before(dateTo)){
return true;
}else{
return false;
}
}
//将一个日期字符串转化成Calendar
public Calendar switchStringToCalendar(String sDate){
Date date = switchStringToDate(sDate);
Calendar c = Calendar.getInstance();
c.setTime(date);
return c;
}
//将一个日期转化成Calendar
public Calendar switchStringToCalendar(Date date){
Calendar c = Calendar.getInstance();
c.setTime(date);
return c;
}
//------------------------------------------------------------------------
//取得某个时间前n个月的相对应的一天
public String getNMonthBeforeOneDay(String sDate,int n){
Calendar c = switchStringToCalendar(sDate);
c.add(c.MONTH,-n);
return ""+c.get(c.YEAR)+"-"+(c.get(c.MONTH)+1)+"-"+c.get(c.DATE); }
//取得某个时间后n个月的相对应的一天
public String getNMonthAfterOneDay(String sDate,int n){
Calendar c = switchStringToCalendar(sDate);
c.add(c.MONTH,n);
return ""+c.get(c.YEAR)+"-"+(c.get(c.MONTH)+1)+"-"+c.get(c.DATE); }
//取得某个时间前n天,格式为yyyy-mm-dd
public String getNDayBeforeOneDate(String sDate,int n){
Calendar c = switchStringToCalendar(sDate);
c.add(c.DAY_OF_MONTH,-n);
return ""+c.get(c.YEAR)+"-"+(c.get(c.MONTH)+1)+"-"+c.get(c.DATE);
}
//取得某个时间后n天,格式为yyyy-mm-dd
public String getNDayAfterOneDate(String sDate,int n){
Calendar c = switchStringToCalendar(sDate);
c.add(c.DAY_OF_MONTH,n);
return ""+c.get(c.YEAR)+"-"+(c.get(c.MONTH)+1)+"-"+c.get(c.DATE);
}
//判断系统当前时间是不是润年
public boolean isRunNian(){
java.util.Calendar rightNow = java.util.Calendar.getInstance();
int year=rightNow.get(rightNow.YEAR);
if(0==year%4 && (year%100!=0 || year%400==0)){
return true;
}else{
return false;
} }
}
java.util.Date xx=new java.util.Date();
long i=xx.getTime();
i=i-30*24*60*60*1000;
java.util.Date yy=new java.util.Date(i);
你的方法只能取30天前的时间吧?
myyear=xx.getYear();
mymonth=xx.getMonth();
myday=xx.day();
if(mymonth==1)
{
xx.setYear(myyear-1);
xx.setMonth(12)
}
else
xx.setMonth(mymonth-1)l
你的方法我试了一下,好象还是有点问题:如果是20030331
它的前一个月的时间我要求是20030228
但是得到的结果是:20030303
{
String s1 = "";
String s2 = "";
try
{
SimpleDateFormat simpledateformat = new SimpleDateFormat("yyyy-MM-dd");
java.util.Date date = new java.util.Date();
String s3;
if(s.trim().compareTo("") == 0)
s3 = simpledateformat.format(date);
else
s3 = s;
int j = (new Integer(s3.substring(0, 4))).intValue();
int k = (new Integer(s3.substring(5, 7))).intValue();
int l = (new Integer(s3.substring(8, 10))).intValue();
GregorianCalendar gregoriancalendar = new GregorianCalendar(j, k, l);
gregoriancalendar.add(2, i - 1);
java.util.Date date1 = gregoriancalendar.getTime();
s1 = simpledateformat.format(date1);
}
catch(Exception exception)
{
System.out.print("trun month error" + exception.getMessage());
}
return s1;
}