简单的Java题目,关于年份、时间、日期的计算。求助!!!
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了简单的Java题目,关于年份、时间、日期的计算。求助!!!相关的知识,希望对你有一定的参考价值。
输入两个日期,判断两个日期的前后关系以及两个日期之间的间隔天数。
输入格式:1991.01.01
输出格式:1991年1月1日比2012年12月12日早X天
import java.text.SimpleDateFormat;
import java.util.Calendar;
public class TimeTest
static long CONST_DAY = 3600 * 1000 * 24;
public static void main(String[] args) throws Exception
SimpleDateFormat input = new SimpleDateFormat("yyyy.MM.dd");
SimpleDateFormat output = new SimpleDateFormat("yyyy年MM月dd日");
// 输入格式:1991.01.01
// 输出格式:1991年1月1日比2012年12月12日早X天
String strBefore = "1991.01.01";
Calendar before = Calendar.getInstance();
Calendar after = Calendar.getInstance();
before.setTime(input.parse(strBefore));
int interval = (int) ((after.getTimeInMillis() - before
.getTimeInMillis()) / CONST_DAY);
System.out.println(output.format(before.getTime()) + "比"
+ output.format(after.getTime()) + "早" + interval + "天");
追问
看不懂,能解释一下吗?我刚学的,才学到接口。
追答SimpleDateFormat
是个日期格式的类,可以按某个格式将字符串转化为日期,也可以将日期转化为某个格式的字符串。
SimpleDateFormat .parse(String) 按某个格式将字符串转化为日期
SimpleDateFormat .format(new Date()) 将日期转化为某个格式的字符串
Calendar 就是日期类,
Date由于一些原因,有很多方法,官方不推荐使用,推荐使用Calendar
after.getTimeInMillis() 得到的是当前时间距离 1970.1.1 零时的毫秒数。
CONST_DAY = 3600 * 1000 * 24;
这是一天的毫秒数
其它的基本就是数学计算了。
SimpleDateFormat sdf = new SimpleDateFormat(dateFormate);
ParsePosition pos = new ParsePosition(0);
return sdf.parse(sDate, pos);
Date date1 = XXX.getDate("1991.01.01","yyyy.MM.dd");
Date date2 = XXX.getDate("2012.12.12","yyyy.MM.dd");
int days = (date2.getTime()-date1.getTime())/(24*60*60*1000) 参考技术B 直接调用Calendar的方法 参考技术C 哇,楼上的答案已经很精彩了追问
看不懂,能解释一下算法还有那个类吗?
追答其实比较时间就是用一个类,设置两参数,传参比较就可以了。你还可以看一下http://zhidao.baidu.com/question/210778581.html,这个好像也是实现这个功能吧,理解java编程就很容易理解这个了
参考技术D awsewrreewRJAVA中怎么实现,根据用户输入的年份和月份得到当月第1天(该月1号)
请高人指教,最好是把代码一起发出来,谢谢了。。。跪求,急!!
参考技术A 抽了点时间写了些代码:给你看看是不是你想要的,你是初学者把,俺给你加些注释 package yjh.action; import java.text.SimpleDateFormat; //定制日期格式的类 import java.util.Calendar; //日历类 import java.util.Date; //当前日期和时间的Data类 import java.util.Scanner;//读取用户输入的类 public class DataCounter public int getDay(String strDate) throws Exception int day = 0; //设定一个特定的日期格式,例如2009-01-03 SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); //把用户输入的字符串转化为日期和时间的格式 Date date = format.parse(strDate); //返回系统的当前状态时间 Calendar cal = Calendar.getInstance(); //用给定的 date 设置此 cal cal.setTime(date); //返回年月日中的天数 day = cal.get(cal.DAY_OF_YEAR); return day; public static void main(String args[]) try System.out.println("请输入日期,格式如:2009-03-25:"); //读取用户的输入 Scanner scan = new Scanner(System.in); String str = scan.next(); int day; day = new DataCounter().getDay(str); System.out.println(str + "是" + str.subSequence(0, 4) + "年的第" + day + "天"); catch (Exception e) // TODO 自动生成 catch 块 e.printStackTrace(); 本回答被提问者采纳以上是关于简单的Java题目,关于年份、时间、日期的计算。求助!!!的主要内容,如果未能解决你的问题,请参考以下文章