java 日期差

java如何实现日期差,得出结果是这种类型的(年月日),例如2008年5月25号到今天是多久,就应该打印3年8月25天。... java如何实现日期差,得出结果是这种类型的(年月日),例如2008年5月25号到今天是多久,就应该打印 3年8月25天。 展开
 我来答
王晓丹1
2012-01-19
知道答主
回答量:30
采纳率:0%
帮助的人:21万
展开全部
Calendar calendar = Calendar.getInstance();
long yiQian = calendar.getTimeInMillis();
calendar.set(2008,5,25);
long xianZai = calendar.getTimeInMillis();
//转换成天
int day = (xianZai-yiQian)/(1000*60*60*24);
//转换成想要的格式,这里定为1年=365天 1月=30天
//算出年
int year =day/365;
day = day%365;
//算出月
int month = day/30;
day = day%30;
//输出结果
System.out.println(year+"年-"+month+"月-"+day+"天");
追问
得出年限为负数
int day = (int) ((yiQian-xianZai)/(1000*60*60*24));我这样换了就成正数了
追答
我这个只是在百度上编辑的,没有到环境中跑啊,具体细节估计还需要你修改下,基本思路就是安我这么走,如果你还修改不了我可以在环境下给你跑下再发过去
这样就可以了:
Calendar calendar = Calendar.getInstance();
long xianZai = calendar.getTimeInMillis();
System.out.println(xianZai);
calendar.set(2008,5,25);
long yiQian = calendar.getTimeInMillis();
System.out.println(yiQian);
//转换成天
int day = (int)((xianZai-yiQian)/(1000*60*60*24));
//转换成想要的格式,这里定为1年=365天 1月=30天
//算出年
int year =day/365;
day = day%365;
//算出月
int month = day/30;
day = day%30;
//输出结果
System.out.println(year+"年"+month+"月"+day+"天");
vip2365235
2012-01-19 · 超过32用户采纳过TA的回答
知道答主
回答量:245
采纳率:0%
帮助的人:115万
展开全部
Java中Calendar
package Date;

import java.util.Calendar;
import java.util.Date;

public class CalendarDemo {
public static void main(String[] args) {
Calendar calendar=Calendar.getInstance();

calendar.setTime(new Date());
System.out.println("现在时间是:"+new Date());
String year=String.valueOf(calendar.get(Calendar.YEAR));
String month=String.valueOf(calendar.get(Calendar.MONTH)+1);
String day=String.valueOf(calendar.get(Calendar.DAY_OF_MONTH));
String week=String.valueOf(calendar.get(Calendar.DAY_OF_WEEK)-1);
System.out.println("现在时间是:"+year+"年"+month+"月"+day+"日,星期"+week);
long year2009=calendar.getTimeInMillis();
calendar.set(1989,9,26);//这里与真实的月份之间相差1
long year1989=calendar.getTimeInMillis();
long days=(year2009-year1989)/(1000*60*60*24);
System.out.println("今天和1989年10月26日相隔"+days+"天,"+"也就是说我在这个美丽的星球上已经幸福的生活了"+days+"天。");

}

}
追问
兄弟我要的不是天数是多少年多少月,多少日,比如工龄,你总不能说做了多少天吧。
追答
计算出天数你在除以365得出年,余数除以30月,在余的数 就是天
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
INGYK
2012-01-19
知道答主
回答量:22
采纳率:0%
帮助的人:10.2万
展开全部
//。。。 你看字面就能写代码啦。
Calendar calendar=Calendar.getInstance();
//得到当前的年
int year = calendar.get(Calendar.YEAR);
//得到当前的月
int month = calendar.get(Calendar.MONTH)+1;
//得到当前的日
int day = calendar.get(Calendar.DAY_OF_MONTH));
//打印
System.out.println((year-2008) + "年" + (month-5) + "月" +( day-28) + "日" );

//注意,“日”的话你自己判断一下,看‘( day-28) + "日"’这个小于0的话,你可以在月那里扣掉1,然后再逻辑判断。 不知道你需要什么样的业务逻辑,所以我这里也就告诉你个大概的方法。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
tutor656
2012-01-19 · 贡献了超过154个回答
知道答主
回答量:154
采纳率:0%
帮助的人:84.4万
展开全部
我以前用c++写过一个,你看看吧 //输入两个日期,计算相差多少天 #include<iostream> using namespace std; int main() {int yy1,mm1,dd1,yy2,mm2
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
winters1224
2012-01-19 · TA获得超过398个赞
知道小有建树答主
回答量:266
采纳率:0%
帮助的人:38.5万
展开全部
用Calendar或Date,一般推荐用Calendar
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式