文档章节

Java时间类之间的转换案例——计算自己活了多少天

mutouzhang
 mutouzhang
发布于 2014/03/20 20:52
字数 361
阅读 178
收藏 1

/** 第一种最老实的方法 */

public class BetweenDay {
   public static void main(String[] args) {
       between(2012,12,23); //0天
       between(1988,7,9);//8933天
   }
   //1.求出当前时间距离1970年的毫秒数
   //2.求出生日那天距离1970年的毫秒数
   //两个做差
   //?问题主要在如何根据历法获得long
   public static void between(int year,int month,int day){
       Calendar birth = new GregorianCalendar();
       birth.set(year, month -1, day);
       Date date = new Date();  //精髓在于long Date Calendar 三者之间的转换 向右是setTime() 向左转换用getTime()
       date = birth.getTime();
       long time = date.getTime();

//以上三句可以简写成一句 ,其实就是等量代换 long time = birth.getTime().getTime(); 效果是一样的        
        long betTime = System.currentTimeMillis() - time;        
       System.out.println("你活了:" + betTime/60/60/24/1000 + " 天");
   }
}


/**第二种方法*/

public class CalcBirthTime {
   public static void main(String[] args) {
       CalcBirthTime();        
   }
   //1.在控制台格式输入生日日期
   //2.格式转换成日期
   //3.控制台输入任意要查询的日期 并转换成日期格式
   //4.将两个日期转换成长整形 做差 得到活了多少岁
   public static void CalcBirthTime(){
       
       SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
       System.out.println("请按照yyyy-MM-dd的日期格式输入你的生日:");
       Scanner scanner = new Scanner(System.in);
       String birth = scanner.nextLine();
       System.out.println("请按照yyyy-MM-dd的日期格式输入你要查询的日期:");
       String now = scanner.nextLine();
       try {
           Date date = sdf.parse(birth);
           long birthTime = date.getTime();
           Date dateNow = sdf.parse(now);
           long checkTime = dateNow.getTime();
//            long time = (checkTime - birthTime)/60/60/24/1000;
           System.out.println("你活了:" + (checkTime - birthTime)/60/60/24/1000 + " 天");            
       } catch (ParseException e) {
           e.printStackTrace();
       }        
   }
}


© 著作权归作者所有

mutouzhang
粉丝 6
博文 190
码字总数 91235
作品 0
洛阳
程序员
私信 提问
Java 8新的时间日期库的20个使用示例

除了lambda表达式,stream以及几个小的改进之外,Java 8还引入了一套全新的时间日期API,在本篇教程中我们将通过几个简单的任务示例来学习如何使用Java 8的这套API。Java对日期,日历及时间的...

清尘V
2015/03/17
0
0
Java 8时间和日期API 20例

伴随lambda表达式、streams以及一系列小优化,Java 8 推出了全新的日期时间API,在教程中我们将通过一些简单的实例来学习如何使用新API。Java处理日期、日历和时间的方式一直为社区所诟病,将...

黄梦巍
2015/06/19
0
0
亲爱的 Oracle: Java API 不是艺术品

Oracle曾经说Java API就像是优美的画作。Google却说API就是文件柜里的文件。最后,William Alsup(负责审理Oracle和Google关于Java纠纷的法官)比较同意Google的观点,Java作为一门编程语言,...

oschina
2012/06/06
3.3K
35
android -------- java虚拟机和Dalvik虚拟机

java虚拟机 虚拟机是一种抽象化的计算机,通过在实际的计算机上仿真模拟各种计算机功能来实现的。Java虚拟机有自己完善的硬体架构,如处理器、堆栈、寄存器等,还具有相应的指令系统。Java虚...

切切歆语
2018/04/29
0
0
学习——>JNI设置C++与java的结合

JNI是Java Native Interface的英文缩写, 中文翻译为本地调用, 自从Java 1.1开始就成为了Java标准的一部分. C/C++是系统级的编程语言, 可以用来开发任何和系统相关的程序和类库, 但是Java本身...

home-kevin
2014/01/07
0
0

没有更多内容

加载失败,请刷新页面

加载更多

docker中部署的应用,获取含有中文字符的验证码图片时无法正常显示

使用docker过程中遇过的最诡异的问题,服务在本地环境中,通过在IDEA里面运行,或者使用java -jar ***.war运行,获取验证码图片都没有问题,但是运行在docker中,图片正常返回,但是上面的汉...

莫在全
28分钟前
1
0
postgres+socket.io+nodejs实时地图应用实践

nodejs一直以异步io著称,其语言特性尤其擅长于在realtime应用中,如聊天室等。在进行实时应用开发时,必不可少的需要用到 socket.io库,可以说,nodejs+socket.io在实时应用中具有较好的表现...

dragon_tech
34分钟前
2
0
Java开发面试题汇总

目前流行的开发技术、常见的面试问题以及问题的答案都已经写的特别清楚了,今天我在之前的基础上,再基于个人的经验继续精选一些面试题给大家阅读参考。 1,Java的反射 Java 反射机制是在运行...

花漾年华
38分钟前
5
0
聊聊flink jdbc的ParameterValuesProvider

序 本文主要研究一下flink jdbc的ParameterValuesProvider ParameterValuesProvider flink-jdbc_2.11-1.8.0-sources.jar!/org/apache/flink/api/java/io/jdbc/split/ParameterValuesProvide......

go4it
38分钟前
1
0
UserInputControls用户输入控制

enum UserInputControls { kGovernedByOrthoMode = 0x0001,//正交模式管理 kNullResponseAccepted = 0x0002,//允许输入空 kDontEchoCancelForCtrlC = 0x0004,//ctrl C 模式不能重复......

一个小妞
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部