java String,date型日期的运算
2009-08-31 11:22
78 查看
public String getDate(String data) throws ParseException{
// TODO Auto-generated method stub
String datetime = data;
int days = -7;
String rDate="";
SimpleDateFormat df=new SimpleDateFormat("yyyyMMdd");
Date d=df.parse(datetime);
rDate=df.format(new Date(d.getTime() + days * 24 * 60 * 60 * 1000));
return rDate;
}
在上次做项目的时候,老是遇到对日期进行加减运算的程序,因为数据库中的日期都是以String类型保存的。就顺便做了个共通,上面的程序是求当前日期前7天时候的日期。
下面是求当前日期前一周的周一和周日的算法:
上周周一:
public String getDateOfMonday() throws ParseException
{
Date d =new Date();
SimpleDateFormat df=new SimpleDateFormat("yyyy/MM/dd");
String da = df.format(new Date(d.getTime() - 7 * 24 * 60 * 60 * 1000));
Calendar cal=Calendar.getInstance();
Date date=df.parse(da);
cal.setTime(date);
int between=cal.get(Calendar.DAY_OF_WEEK)-1;
int subMonday=0;
if (between>=1&&between<=6)
{
subMonday=1-between;
}
else if (between==0)
{
subMonday=-6;
}
cal.add(Calendar.DAY_OF_MONTH,subMonday);
String monday = df.format(cal.getTime());
return monday;
}
上周周日:
public String getDateOfSunday() throws ParseException
{
Date d =new Date();
SimpleDateFormat df=new SimpleDateFormat("yyyy/MM/dd");
String da = df.format(new Date(d.getTime() - 7 * 24 * 60 * 60 * 1000));
Calendar cal=Calendar.getInstance();
Date date=df.parse(da);
cal.setTime(date);
int between=cal.get(Calendar.DAY_OF_WEEK)-1;
int subMonday=0;
if (between>=1&&between<=6)
{
subMonday=1-between;
}
else if (between==0)
{
subMonday=-6;
}
cal.add(Calendar.DAY_OF_MONTH,subMonday);
cal.add(Calendar.DAY_OF_MONTH,6);
String sunday = df.format(cal.getTime());
return sunday;
}
这里把时间格式规定成了yyyy/MM/dd的格式,当然也可以适当作出改变,如:
SimpleDateFormat df=new SimpleDateFormat("yyyyMMdd"); 等等。
下面是去当前日期的前7天时候的日期,是Date型日期的运算:
Date nowDate = new Date();
SimpleDateFormat fmt = new SimpleDateFormat("yyyyMMdd");
GregorianCalendar g = new GregorianCalendar(nowDate.getYear()+ 1900,
nowDate.getMonth(), nowDate.getDate());
g.add(Calendar.DATE, -7);
String ymd = fmt.format(g.getTime());
这样,ymd取得的就是当前日期前7天时候的日期。当然,是Date型转化后的String型。
// TODO Auto-generated method stub
String datetime = data;
int days = -7;
String rDate="";
SimpleDateFormat df=new SimpleDateFormat("yyyyMMdd");
Date d=df.parse(datetime);
rDate=df.format(new Date(d.getTime() + days * 24 * 60 * 60 * 1000));
return rDate;
}
在上次做项目的时候,老是遇到对日期进行加减运算的程序,因为数据库中的日期都是以String类型保存的。就顺便做了个共通,上面的程序是求当前日期前7天时候的日期。
下面是求当前日期前一周的周一和周日的算法:
上周周一:
public String getDateOfMonday() throws ParseException
{
Date d =new Date();
SimpleDateFormat df=new SimpleDateFormat("yyyy/MM/dd");
String da = df.format(new Date(d.getTime() - 7 * 24 * 60 * 60 * 1000));
Calendar cal=Calendar.getInstance();
Date date=df.parse(da);
cal.setTime(date);
int between=cal.get(Calendar.DAY_OF_WEEK)-1;
int subMonday=0;
if (between>=1&&between<=6)
{
subMonday=1-between;
}
else if (between==0)
{
subMonday=-6;
}
cal.add(Calendar.DAY_OF_MONTH,subMonday);
String monday = df.format(cal.getTime());
return monday;
}
上周周日:
public String getDateOfSunday() throws ParseException
{
Date d =new Date();
SimpleDateFormat df=new SimpleDateFormat("yyyy/MM/dd");
String da = df.format(new Date(d.getTime() - 7 * 24 * 60 * 60 * 1000));
Calendar cal=Calendar.getInstance();
Date date=df.parse(da);
cal.setTime(date);
int between=cal.get(Calendar.DAY_OF_WEEK)-1;
int subMonday=0;
if (between>=1&&between<=6)
{
subMonday=1-between;
}
else if (between==0)
{
subMonday=-6;
}
cal.add(Calendar.DAY_OF_MONTH,subMonday);
cal.add(Calendar.DAY_OF_MONTH,6);
String sunday = df.format(cal.getTime());
return sunday;
}
这里把时间格式规定成了yyyy/MM/dd的格式,当然也可以适当作出改变,如:
SimpleDateFormat df=new SimpleDateFormat("yyyyMMdd"); 等等。
下面是去当前日期的前7天时候的日期,是Date型日期的运算:
Date nowDate = new Date();
SimpleDateFormat fmt = new SimpleDateFormat("yyyyMMdd");
GregorianCalendar g = new GregorianCalendar(nowDate.getYear()+ 1900,
nowDate.getMonth(), nowDate.getDate());
g.add(Calendar.DATE, -7);
String ymd = fmt.format(g.getTime());
这样,ymd取得的就是当前日期前7天时候的日期。当然,是Date型转化后的String型。
相关文章推荐
- java常用类:Number|日期|Character|String|StringBuffer
- java中string与date(日期)格式之间的转换
- Java日期与String转换等处理
- java日期之间的加减运算总结
- Java String 字符串拼接,截取,查找及日期转换
- java Data、String、Long三种日期类型之间的相互转换
- Java 日期时间 Date类型,long类型,String类型表现形式的转换
- Java 日期时间 Date类型,long类型,String类型表现形式的转换
- java校验String是否为指定的日期格式
- java时间,日期,毫秒值,String的相互转换总结
- 关于在java中将string转换成日期的问题
- [置顶] Android开发之 当前日期String类型转date类型 java代码中实现方法
- java对日期Date类进行加减运算、年份加减,月份加减
- java学习:日期的运算代码
- java日期类型转换总结date timestamp calendar string
- (Java)你的日期还在用String吗?
- Spring表单提交日期类型绑定Failed to convert from type java.lang.String to type java.util.D
- Java 日期时间 Date类型,long类型,String类型表现形式的转换
- java Data、String、Long三种日期类型之间的相互转换
- Java Date,long,String 日期转换