求助一个java关于日期的方法怎么写?
1、要求越简单越好2、但是不能有漏洞,闰日要考虑进去。具体要求:方法根据传来的一个字符串如:“2009-05-03”计算30天后的日期返回一个字符串。day=day*24...
1、要求越简单越好
2、但是不能有漏洞,闰日要考虑进去。
具体要求:
方法根据传来的一个字符串如:“2009-05-03”计算30天后的日期返回一个字符串。
day = day*24*60*60*1000这个都什么意思? 展开
2、但是不能有漏洞,闰日要考虑进去。
具体要求:
方法根据传来的一个字符串如:“2009-05-03”计算30天后的日期返回一个字符串。
day = day*24*60*60*1000这个都什么意思? 展开
3个回答
展开全部
验证辻的,没有问题!
java系统把时间定义成了一个long 型的变量,保存的是毫秒值,通辻运算得到具体的时间.根据你的要求,我的作法是:先把传来的日期,进行设置,再把传来的天数,转成毫秒数, 加上去,最后通过公式返回结果值.
import java.util.*;
public class Test {
public static void main(String[] args) {
//两个参数分别是:方法根据传来的一个字符串,多少天后
String sr = myDate("2008-2-28",2);
System.out.println(sr);
}
public static String myDate(String str, int t) {
long ln = 1000*60*60*24*t;
String[] arr = str.split("-");
int [] intArr = new int[arr.length];
for(int i=0; i<arr.length; i++) {
intArr[i] = Integer.valueOf(arr[i]);
}
Date d = new Date();
d.setYear(intArr[0]-1900);
d.setMonth(intArr[1]-1);
d.setDate(intArr[2]);
ln = ln + d.getTime();
d.setTime(ln);
String ss = String.valueOf(d.getYear()+1900) + "-";
ss += String.valueOf(d.getMonth()+1) + "-";
ss += String.valueOf(d.getDate());
return ss;
}
}
java系统把时间定义成了一个long 型的变量,保存的是毫秒值,通辻运算得到具体的时间.根据你的要求,我的作法是:先把传来的日期,进行设置,再把传来的天数,转成毫秒数, 加上去,最后通过公式返回结果值.
import java.util.*;
public class Test {
public static void main(String[] args) {
//两个参数分别是:方法根据传来的一个字符串,多少天后
String sr = myDate("2008-2-28",2);
System.out.println(sr);
}
public static String myDate(String str, int t) {
long ln = 1000*60*60*24*t;
String[] arr = str.split("-");
int [] intArr = new int[arr.length];
for(int i=0; i<arr.length; i++) {
intArr[i] = Integer.valueOf(arr[i]);
}
Date d = new Date();
d.setYear(intArr[0]-1900);
d.setMonth(intArr[1]-1);
d.setDate(intArr[2]);
ln = ln + d.getTime();
d.setTime(ln);
String ss = String.valueOf(d.getYear()+1900) + "-";
ss += String.valueOf(d.getMonth()+1) + "-";
ss += String.valueOf(d.getDate());
return ss;
}
}
展开全部
补充:day = day*24*60*60*1000是将天转换成毫秒, date.getTime获得的是毫秒数,所以要转换
我写出来了,你粘过去运行一下看一下结果,传多少天数都可以,我试了,没什么问题
public class T {
public static void main(String[] args) throws ParseException {
Date d = new Date();
Date newDate = addDate(d, 30L);
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
System.out.println(dateFormat.format(newDate));
}
/**
* 添加日期
* @param d 现日期
* @param day 添加的天数
* @return 添加后的日期
* @throws ParseException
*/
public static Date addDate(Date d,long day) throws ParseException {
long time = d.getTime();
day = day*24*60*60*1000;
time+=day;
return new Date(time);
}
}
我写出来了,你粘过去运行一下看一下结果,传多少天数都可以,我试了,没什么问题
public class T {
public static void main(String[] args) throws ParseException {
Date d = new Date();
Date newDate = addDate(d, 30L);
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
System.out.println(dateFormat.format(newDate));
}
/**
* 添加日期
* @param d 现日期
* @param day 添加的天数
* @return 添加后的日期
* @throws ParseException
*/
public static Date addDate(Date d,long day) throws ParseException {
long time = d.getTime();
day = day*24*60*60*1000;
time+=day;
return new Date(time);
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你查阅Java API文档中util类 有现成的方法
你可以去找下
你可以去找下
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询