public static String getAgeDetail(String date){

//如果有空格

int index = date.indexOf(" ");

if (index != -1){

date = date.substring(0 , index);

}

String[] data = date.split("-");

Calendar birthday =new GregorianCalendar(Integer.valueOf(data[0]), Integer.valueOf(data[1]), Integer.valueOf(data[2]));

Calendar now = Calendar.getInstance();

int day = now.get(Calendar.DAY_OF_MONTH) - birthday.get(Calendar.DAY_OF_MONTH);

//月份从0开始计算,所以需要+1

int month = now.get(Calendar.MONTH) +1 - birthday.get(Calendar.MONTH);

int year = now.get(Calendar.YEAR) - birthday.get(Calendar.YEAR);

//按照减法原理,先day相减,不够向month借;然后month相减,不够向year借;最后year相减。

if (day <0) {

month -=1;

now.add(Calendar.MONTH, -1);//得到上一个月,用来得到上个月的天数。

day = day + now.getActualMaximum(Calendar.DAY_OF_MONTH);

}

if (month <0) {

month = (month +12) %12;

year--;

}

StringBuffer tag =new StringBuffer();

if (year >0) {

tag.append(year +".");

}

if (month >0) {

tag.append(month);

}

if (year ==0 && month ==0 && day ==0) {

tag.append("今日出生");

}

return String.valueOf(tag);

}

原文:https://www.cnblogs.com/xiao1993/p/11698550.html

java 生日 计算_java根据生日计算当前年龄,精确到月相关推荐

  1. java 整型_Java整型计算

    整型计算 今天做LeetCode看到一道题,翻转整型,其中一行代码if ((newResult - tail) / 10 != result)表示超出范围就会有损失,有点不太明白,正好之前复习过原码, ...

  2. java对角线之和_java编程之计算矩阵对角线和(从命令窗输入数据)

    /* *求10行.10列整型方阵对角线上元素之和 */ import java.util.Scanner; class linesum{ public static void main(String ...

  3. java 如何计算时间段_Java程序来计算两个时间段之间的时差

    Java程序来计算两个时间段之间的时差 在此程序中,您将学习计算Java中两个时间段之间的时差. 示例:计算两个时间段之间的时差 public class Time { int seconds; in ...

  4. java特征向量计算_Java与Python计算特征向量的区别

    在apachecommons math3中,EigenDecomposition接受非对称矩阵,但它使用RealVector和{}类返回结果.为了得到实际的复杂结果,您必须将适当的实际结果组合成复共轭 ...

  5. java长方形周长计算_Java练习 SDUT-3339_计算长方形的周长和面积(类和对象)

    ###计算长方形的周长和面积(类和对象) Time Limit: 1000 ms Memory Limit: 65536 KiB ####Problem Description 设计一个长方形类Rec ...

  6. java求长方体_Java练习 SDUT-3337_计算长方体、四棱锥的表面积和体积

    ###计算长方体.四棱锥的表面积和体积 Time Limit: 1000 ms Memory Limit: 65536 KiB ####Problem Description 计算如下立体图形的表面积 ...

  7. java时间差工具_Java 工具类 计算两个日期之间相差 天 小时 分钟 秒

    java 日期做差 : 场景 判断过期 public static String dateDiff(String startTime, String endTime, String format) { ...

  8. java 中缀转后缀并计算_Java实现表达式计算(中缀转后缀)

    定义: 中缀表达式:我们平时写的数学表达式一般为中缀表达式,如"5+2*(3*(3-1*2+1))",直接拿中缀表达式直接让计算机计算表达式的结果并不能做到. 后缀表达式:把中缀表 ...

  9. java 流计算_JAVA流式计算

    JAVA流式计算 流的简单介绍 Java 8 中,引入了流(Stream)的概念,利用提供的Stream API,我们可以方便的操作集合数据,这种方式很类似于使用SQL对数据库的操作. 如何生成流 利 ...

最新文章

  1. asp.net MVC2 初探四
  2. spring cloud gateway中解决第一次请求失败的问题
  3. FD.io/VPP — VNF 应用场景
  4. Java 基础搞定了,还能学点什么?
  5. LoadRunner 测试Oracle数据库及Siebel性能
  6. 【DirectX12】4.用FBX_SDK读取网格数据
  7. SVN提交,提示“remains in conflict”错误
  8. Matlab库中过采样函数rcosflt参数及源代码详解(翻译)
  9. JAVA 【引用类型】和【对象类型】在【继承】中的异同
  10. mysql unix格式_将MySQL Unix-Timestamp格式转换为日期格式?
  11. NVIDIA NSight System工具安装和使用介绍(MacOS)
  12. python list转json对象,python 对象和json互相转换方法
  13. JavaScript 动态生成表格 及删除表格
  14. Windows下安装JanusGraph(踩坑记录)
  15. SwiftUI4 iOS16 新特性之 WeatherKit免费天气API使用教程(WWDC 2022教程含源码)
  16. python创意网络爬虫_Python网络爬虫(一)
  17. react-native0.66==windows环境搭建、demo测试
  18. Typora 一款非常简洁,非常适合程序员使用的markdown文档书写工具
  19. MATLAB程序设计与应用 2.4 MATLAB常用内部函数
  20. 用VC++5.0播放AVI文件的两种方法

热门文章

  1. windows环境下VS2013编译openSSL
  2. HTML meta元素
  3. Java彻底 - WEB容器的侦听具体解释 ServletContextListener
  4. 在jquery的ajax方法中的success中使用return要注意的问题
  5. 国产网游制作现状、差距及提高
  6. 利用SMTP虚拟服务器实现不同邮件系统之间的通讯
  7. 04 bbed修复system文件头损坏
  8. 对于react-redux的理解
  9. 笔记67 Spring Boot快速入门(七)
  10. python selenium2 动态调试