如下是一个Java程序实现了从键盘读入出生日期并计算从出生开始过去了多少天/多少周/多少月/多少日。

具体的全部解决思路以及代码。还有代码对应的相关解释已标注与代码中。

如果发现有所问题,还望斧正。

import java.text.*;import java.util.*;//键盘输入某人的出生日在期,计算从出生开始到现,经过了多少天?多少周?多少年?/* *设计思路: *1、String输入生日 *2、拆字符串,拆成年月日 *3、年和自动获取的年减 *4、重新合成Date类型的日期,获取毫秒 *5、自动获取当前日期的毫秒数和生日相减 *6、通过12减去出生月计算出生该年的剩余月,然后加上该年已经过去的月,加上(年纪-1)*12月 */public class T {    public static void main(String[] arg){        //throws ParseException {向上一层抛出异常,方法声明中使用关键字上抛异常        String birthday;//定义一个字符类型的变量birthday用于储存输入的生日信息        int year = 0 ;//出生了多少年        long month = 0;//出生了多少月        long week = 0; //出生了多少周        long day = 0;//出生了多少天        long ms;//出生多少毫秒        Scanner scanner = new Scanner(System.in);//输入语句        System.out.println("请输入您的生日(格式为YYYY-MM-DD):");        birthday = scanner.nextLine();//读入日期(String类型)        String s1[]=birthday.split("-");//按一定的条件拆分字符串,s1[0]年;s1[1]月;s1[2]日        int birthday_year=Integer.parseInt(s1[0]);//从字符串中读取出生年        Calendar cal = Calendar.getInstance();//创建一个Calendar 对象        int now_year = cal.get(Calendar.YEAR);//获取当前年份        year = now_year -birthday_year;//运算过了几年        Date birthday_date = new Date();//创建一个生日日期的对象        int birthday_month = Integer.parseInt(s1[1]);        int now_month = cal.get(Calendar.MONTH);//自动获取当前月份        System.out.println(now_month);        month = (12-birthday_month)+ ((year-1)*12)+(now_month+1);//计算经过了几个月(月份+1因为Java中月的从0开始计数)        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");//创建一个对象用于接下来转换的格式        try {            birthday_date = sdf.parse(birthday);//将字符型的生日转化成日期型        } catch (ParseException e) {//收集可能存在的问题并输出            e.printStackTrace();        }        //System.out.println("birthday:"+birthday_date);//输出生日        long birthday_time = birthday_date.getTime();        //System.out.println(birthday_time);//输出生日毫秒        Date date = new Date();//新建一个date对象        long today_time = date.getTime();        //System.out.println(today_time);//输出当前毫秒        ms =today_time - birthday_time;//计算差值毫秒        //System.out.println("差值毫秒"+ms);//差值毫秒        day =  ms/1000/60/60/24;//计算差值天数        //System.out.println("您已存活:"+day+"天");        week = day/7;//计算差值周数        //System.out.println("您已存活:"+week+"周");        System.out.println("您已经存活"+day+"天,"+week+"周,"+month+"月,"+year+"年。");    }}

date日期相减 java_一个小小的Java程序相关推荐

  1. date日期相减 java_03时间日期类

    Java8 在 java.time 包中增加了时间日期相关的API,弥补了 Java8 以前对日期.时间处理的不足. 在介绍Java8新的时间日期API前,先看看 java8 以前我们操作日期时间常用 ...

  2. 猫捉老鼠java_一个用java程序写的猫捉老鼠程序

    匿名用户 1级 2009-01-03 回答 1: public interface Number { public int nextInt(); } 2: import java.util.Rando ...

  3. Java 计算两个日期相减并转换成月份

    来自:https://www.shixinwl.com/article/132 Java 计算两个日期相减并转换成月份 在网上找了很多类似方法结果都是垃圾,于是乎记录下来给需要的人 import ja ...

  4. oracle日期相减工作日_Oracle 计算两个日期间隔的天数、月数和年数

    在Oracle中计算两个日期间隔的天数.月数和年数: 一.天数: 在Oracle中,两个日期直接相减,便可以得到天数: select to_date('08/06/2015','mm/dd/yyyy' ...

  5. mysql时间相减得到天数保留两位_mysql 中两个日期相减获得 天 小时 分钟 或者 小时:分钟的格式...

    /**有一个需求,要求获得两个日期想减的天数,小时数,分钟数.通过查找资料,于是乎我写出了如下代码,来获得两个字段.*/ IFNULL(CONCAT( IF(aib.`forecast_reply_t ...

  6. 日期相减计算年_函数 | Excel有个“秘密”函数,计算年龄工龄特方便

    工作中经常会遇到涉及日期间隔的计算问题,比如计算两个日期之间的天数.月数.年数,这时需要用到Excel中一个秘密函数. 说到"秘密",是因为你在微软Excel提供的的函数列表里是找 ...

  7. android 日期相减得天数_Excel日期计算方法大全

    关注回归线  Excel变简单 日期数据是Excel中很重要的一类数据,很多分析都依赖于日期的计算.但是,大多数Excel使用者都对日期计算的方法不太熟悉. 本文总结了日常工作中常见的日期计算场景和相 ...

  8. oracle日期相减工作日_oracle 日期相减 转载

    转自 http://hi.baidu.com/juanjuan_66/blog/item/cf48554c9331fbe6d62afc6a.html oracle日期相减 2012-02-10 12: ...

  9. mysql时间相减得到天数保留两位_[转]Mysql日期函数-日期相减返回天数

    MySQL datediff(date1,date2):两个日期相减 date1 - date2,返回天数. select datediff('2008-08-08', '2008-08-01'); ...

最新文章

  1. 我的LDAP使用手记(Fedora-ds) 备忘用
  2. C#3.0语法新特性集合
  3. Rabbit寻宝记(1)
  4. 缓存redis的实现思路
  5. 2020ICPC沈阳 - United in Stormwind(推公式+FWT+SOSdp)
  6. (SSO)单点登录原理和总结
  7. Magento Block设计分析(深入分析)
  8. 2020 年了,WPF 还有前途吗?
  9. 基于 Kubernetes 的 CICD 基础设施即代码
  10. ios pusher使用_如何使用JavaScript和Pusher实时更新用户状态
  11. 电信计算机知识考试,2020中国电信考试试题——专业知识一
  12. java properties $_Java读取Properties文件的六种方法
  13. Linux中b设备是什么,linux-将新设备添加到b??trfs卷中,但是可用...
  14. Ubuntu 16.04中iptables的工具简介(iptables/iptables-restore/iptables-xml/iptables-apply/iptables-save)...
  15. 如果计算机是中国人发明的,那编程代码很可能就应该这样写!
  16. [CCPC-Wannafly Comet OJ 夏季欢乐赛(2019)]飞行棋
  17. 学计算机专业选择设计为类需要艺考,想学设计必须参加艺考吗?设计学类专业,新高考选科怎么选?...
  18. SciPy库主要功能
  19. 手把手教你php调用短信接口(smsapi)实现发送短信验证码
  20. 【Arduino】基础传感器使用

热门文章

  1. Windows10 virtualbox安装alpine+docker
  2. 知识复习:nlp算法面试汇总
  3. 战斗机嵌入式训练系统中的智能虚拟陪练
  4. 二叉树介绍与代码实现
  5. mysql报错:Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggre
  6. 【树状数组】CF961E Tufurama
  7. DOM编程练习(慕课网题目)
  8. linux 下环境变量设置
  9. JavaScript基本概念(下)
  10. 网站架构之缓存应用(摘录)