蓝桥中 时间计算 总是以填空题出现 对于用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();
}
}
}
好了到这就结束了。
感谢自己坚持,谢谢读者纠错