java日期时间计算代码 java 日期计算( 二 )


public static Date getDateFromString(String dateStr, String format) {
if ((dateStr == null) || (format == null)) {
try {
throw new Exception("数据类型异常" + dateStr + "|" + format);
} catch (Exception e) {
logger.error("数据类型异常:" + e);
}
}
SimpleDateFormat df = new SimpleDateFormat(format);
Date date;
try {
date = df.parse(dateStr);
return date;
} catch (Exception ex) {
logger.error(ex);
return new Date();
}
}
static public int getNowYear() {
Calendar cal = Calendar.getInstance();
return cal.get(Calendar.YEAR);
}
static public int getNowMonth() {
Calendar cal = Calendar.getInstance();
return cal.get(Calendar.MONTH) + 1;
}
public static String[] getMonthRang(String year, String month) {
String beginDate = year + "-" + month + "-01";
String endDate = year + "-" + month + "-" +
getDayCountOfMonth(year, month);
return getDaysByRang(beginDate, endDate);
}
public static String[] getDaysByRang(String beginDate, String endDate) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
//得到两个日期间相差多少天
int num = dateDiff(beginDate, endDate);
if (num0) {
//颠倒一下日期
String tmp = beginDate;
beginDate = endDate;
endDate = tmp;
num = 0 - num;
}
String[] result = {};
Calendar cal = Calendar.getInstance();
try {
cal.setTime(sdf.parse(beginDate));
} catch (ParseException e) {
e.printStackTrace();
}
num = num + 1; //把开始和结束日期都包含进去
result = new String[num];
for (int i = 0; inum; i++) {
if (i0) {
cal.add(Calendar.DAY_OF_YEAR, 1);
}
result[i] = sdf.format(new Date(cal.getTimeInMillis()));
}
return result;
}
public static int dateDiff(String beginDate, String endDate) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date date = null;
try {
date = sdf.parse(endDate);
} catch (ParseException e) {
date = new Date();
e.printStackTrace();
}
long end = date.getTime();
try {
date = sdf.parse(beginDate);
} catch (ParseException e) {
date = new Date();
e.printStackTrace();
}
long begin = date.getTime();
long day = (end - begin) / (1000 * 3600 * 24); //除1000是把毫秒变成秒
return Integer.parseInt(Long.toString(day));
}
public static void main(String[] args) {
System.out.println(AdDateUtil.getADay("yyyy-MM-dd", -7));
}
}
java 计算某日期 多少天后的日期java计算某日期之后的日期,可以参考如下代码:
public static void main(String[] args) {
// 时间表示格式可以改变,yyyyMMdd需要写例如20160523这种形式的时间
SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd");
String str = "2016/05/23";
// 将字符串的日期转为Date类型,ParsePosition(0)表示从第一个字符开始解析
Date date = sdf.parse(str, new ParsePosition(0));
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
// add方法中的第二个参数n中,正数表示该日期后n天 , 负数表示该日期的前n天
calendar.add(Calendar.DATE, -10);
Date date1 = calendar.getTime();
String out = sdf.format(date1);
System.out.println(out);
}
java程序中日期计算第一种是以毫秒为单位计算java日期时间计算代码的 。
[java] view plaincopy
//伪代码
long startTime=System.currentTimeMillis();//获取开始时间
doSomeThing();//测试java日期时间计算代码的代码段
long endTime=System.currentTimeMillis(); //获取结束时间
System.out.println("程序运行时间java日期时间计算代码: "+(end-start)+"ms");

推荐阅读