JAVA日期类型如何计算

[复制链接]
查看11 | 回复4 | 2011-3-29 07:29:38 | 显示全部楼层 |阅读模式
String aa = \"2011-2-02\";
String bb = \"2010-4-12\"

我想把aa和bb进行减法计算,算出他们相差了多少天,该怎么做呢?
回复

使用道具 举报

千问 | 2011-3-29 07:29:38 | 显示全部楼层
<pre id=\"best-answer-content\" class=\"reply-text mb10\">import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;

public class Cat {

public static void main(String[] args) throws ParseException {

String aa = \"2011-2-02\";
String bb = \"2010-4-12\";


int julianDay = calcJulianDays(aa, bb);

System.out.println(aa \" - \" bb \" = \" julianDay \" days\");

}

private static int calcJulianDays(String aa, String bb) throws ParseException {
final SimpleDateFormat sdf = new SimpleDateFormat(\"yyyy-MM-dd\");

Calendar cal = Calendar.getInstance();
cal.setTime(sdf.parse(aa));

long aMillionSeconds = cal.getTimeInMillis();

cal.setTime(sdf.parse(bb));
long bMillionSeconds = cal.getTimeInMillis();

return (int) ((aMillionSeconds - bMillionSeconds) /(1000*60*60*24));
}
}

----------------------
2011-2-02 - 2010-4-12 = 296 days

















<h4 class=\"ask\">追问





<pre class=\"replyask-text\" id=\"content-2977884\">因为我的后台代码涉及到了很多东西,不可能再写一个方法,能否简单点呢?
我有点弄不懂。
回复

使用道具 举报

千问 | 2011-3-29 07:29:38 | 显示全部楼层
<pre class=\"replyask-text\" id=\"content-2978221\">你把方法里面那些copy过去就可以了嘛。
道理很简单,就是把他们转化为日期,然后求出他们各自相距1970 年 1 月 1 日 00:00:00 GMT 以来此 Date 对象表示的毫秒数,然后相减就可以了。

下面这样最简单了,不能再精简了

import java.text.ParseException;
import java.text.SimpleDateFormat;

public class Cat {

        public static void main(String[] args) throws ParseException {

                String aa = \"2011-2-02\";
                String bb = \"2010-4-12\";
               
                final SimpleDateFormat sdf = new SimpleDateFormat(\"yyyy-MM-dd\");
               
                long a = sdf.parse(aa).getTime();
                long b = sdf.parse(bb).getTime();
               
                int julianDay = (int) ((a - b) / (1000*60*60*24));

                System.out.println(aa \" - \" bb \" = \" julianDay \" days\");

        }

}
回复

使用道具 举报

千问 | 2011-3-29 07:29:38 | 显示全部楼层
<pre class=\"replyask-text\" id=\"content-2976913\">我么有太看懂……
我是只小菜鸟~
回复

使用道具 举报

千问 | 2011-3-29 07:29:38 | 显示全部楼层
<pre class=\"replyask-text\" id=\"content-2977895\">因为我的后台代码涉及到了很多东西,不可能再写一个方法,能否简单点呢?
我有点弄不懂。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行