java 时间 日期计算

蓝桥中 时间计算 总是以填空题出现 对于用c语言来写比较费劲 所以掌握一门外语还是很好的:java

java中有用来处理时间的函数,这样可以少些很多代码,但是对于练编程的人来说还是用c语言比较好,毕竟锻炼人嘛!

我用c语言学过一篇关于日期计算的文章可以用来处理一些常用的操作比如:

给你两个日期来计算中间相隔多少天了。

给你一个日期给你一个天数来向前、向后推算日期了.。

毕竟考试还是要用最省事的方法嘛 这样既快有清晰方便,别人还在苦思时咱已经写完了,大摇大摆的从妹子面前走过,妹子满眼羡慕的目光,早已被你征服得意


我对java是新手  用java只不过是为了处理时间 和大数这些对于c语言复杂而对于java只不过是调用函数而已的问题

所以请见谅。

SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

只一句是设置日期的格式的。

Date time1 = format.parse("2001-10-1 13:10:10");
			Date time2 = format.parse("2014-2-28 00:00:00");

这个是来设置日期(初始化);

下面time.getTime();是来获取从1970年到初始化时间所经过的毫秒数;

如果要计算天数的话需要 /1000/60/60/24;

这样得到的是从1970年到现在的天数

下面来说两个日期间相隔的天数

long day=(time1.getTime()-time2.getTime())/(1000*60*60*24);

这是用来计算time1和time2之间相隔的天数;

如何计算time 之后的x天是几号呢 ?

很简单:

time=time+x*60*60*24*1000;

这样就计算出了毫秒数,只要在转换成时间就行了。

time1.setTime(time);

这样time1里面就是这个时间了,我们然后再来将这个时间输出:

System.out.println(format.format(time1));

这样就行了 。

这样就能很好的计算日期和时间了;

先面我来说一下就是会有 加1年,加1个月。。。。这类的问题

Calendar c = Calendar.getInstance();

我们先做一个日历变量c,然后用这个日历变量来处理;

先来将一个日期 赋值给这个日期;

c.setTime(time1);

然后我们来加减(减就是负值)

c.add(c.YEAR, 1);
			c.add(c.MONTH, 1);
			c.add(c.DATE, 1);

加一年,一个月,一天;其他的也都有 就是c.(yingwendanci(英文单词))//英语不好没办法;

然后重新赋值给Date日期就可以了

time1 = c.getTime();

这样就可以了;

还有就是经常用的计算星期几的函数

int x = c.get(c.DAY_OF_WEEK);

这样就行了 x返回1-7的整数 1是指周日2是周一......

下面是一堆我用来练习测试的代码 

如果上面连不起来可以看一下 上面的看明白就不用了 毕竟乱七八糟的 没有营养

package text; 
import java.math.*;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;
public class text {

	public static void main(String[] args) {
		// TODO 自动生成的方法存根
		Scanner cin=new Scanner(System.in);
		SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		
		try {
			Calendar c = Calendar.getInstance();
			Date time1 = format.parse("2000-1-1 01:00:00");
			Date time2 = format.parse("2014-1-31 01:20:00");
			long time = (time2.getTime()-time1.getTime());
			time=time*2;
			time1.setTime(time1.getTime()+time);
			System.out.println(time);
			c.setTime(time1);
			c.add(c.YEAR, 1);
			c.add(c.MONTH, 1);
			c.add(c.DATE, 1);
			time1 = c.getTime();
			Calendar c2 = Calendar.getInstance();
			c2.setTime(time1);
			c2.add(c.MONTH, 1);
			time1=c.getTime();
			System.out.println(format.format(time1));
			int x = c2.get(c2.DAY_OF_WEEK);
			System.out.println(format.format(time1));
			System.out.println(x);
		} catch (ParseException e) {
			// TODO 自动生成的 catch 块
			e.printStackTrace();
		}
		
	}

}

好了到这就结束了。

感谢自己坚持,谢谢读者纠错

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值