Java 计算年龄
public static String getAgeTxt(String birthTime,String beginTime,int level){
if(StringUtils.isBlank(birthTime)||StringUtils.isBlank(beginTime)){
System.out.println("参数中有空值!");
} int year = 0,month=0,day=0,hour=0; Date birthDate = getDateByString(birthTime,"yyyy-MM-dd HH:mm:ss");
Date beginDate = getDateByString(beginTime,"yyyy-MM-dd HH:mm:ss");
Calendar cBirthDate = Calendar.getInstance();
Calendar cBeginDate = Calendar.getInstance();
cBirthDate.setTime(birthDate);
cBeginDate.setTime(beginDate); if(cBeginDate.get(Calendar.YEAR) < cBirthDate.get(Calendar.YEAR)){
return "出生日期大于当前时间";
} //计算出生小时
if(cBeginDate.get(Calendar.HOUR_OF_DAY) < cBirthDate.get(Calendar.HOUR_OF_DAY)){
hour = cBeginDate.get(Calendar.HOUR_OF_DAY)+24 - cBirthDate.get(Calendar.HOUR_OF_DAY);
day = day-1;
}else{
hour = cBeginDate.get(Calendar.HOUR_OF_DAY) - cBirthDate.get(Calendar.HOUR_OF_DAY);
} //计算出生日
if(cBeginDate.get(Calendar.DAY_OF_MONTH)<cBirthDate.get(Calendar.DAY_OF_MONTH)){
day = day + cBeginDate.get(Calendar.DAY_OF_MONTH)+ cBirthDate.getActualMaximum(Calendar.DAY_OF_MONTH)-cBirthDate.get(Calendar.DAY_OF_MONTH);
month = month-1;
}else {
day = day + cBeginDate.get(Calendar.DAY_OF_MONTH)-cBirthDate.get(Calendar.DAY_OF_MONTH);
} //计算出生月
if(cBeginDate.get(Calendar.MONTH) < cBirthDate.get(Calendar.MONTH)){
month = month + cBeginDate.get(Calendar.MONTH)+12 - cBirthDate.get(Calendar.MONTH);
year = year -1;
}else{
month = month + cBeginDate.get(Calendar.MONTH) - cBirthDate.get(Calendar.MONTH);
} //计算出生年
year = year + cBeginDate.get(Calendar.YEAR) - cBirthDate.get(Calendar.YEAR); if(year >7){
return year+"岁";
}else if (year >0 && year <7){
if(month>0 && month <10){
return year+"岁零"+month+"月";
}else if(month >=10 ){
return year+"岁"+month+"月";
}else {
if(day>0){
return year+"岁零"+day+"天";
}else{
return year+"岁";
}
}
}else {
if(month >0){
if( day >0 && day <10){
return month+"个月零"+day+"天";
}else if(day >=10){
return month+"个月"+day+"天";
}else{
return month+"个月";
}
}else{
if(day >0){
if( hour >0 && hour <10){
return day+"天零"+hour+"小时";
}else if(hour >=10){
return day+"天"+hour+"小时";
}else{
return day+"天";
}
}else{
if(hour>0){
return hour+"小时";
}else{
return "出生不足一小时";
}
}
}
}
}
其中比较重要的几点
1、Calendar.getActualMaximum()计算对应的范围内最大值
2、计算年龄应该是从小到大计算年龄,这样方便计算后面的年龄(利用减法的原理);
Java 计算年龄的更多相关文章
- java计算年龄
精确到天计算年龄 public static int getAgeByCardId(String card) throws Exception { Integer len = card.length( ...
- Java 根据年月日精确计算年龄
import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; /** * Created b ...
- Java 根据出生日期计算年龄
1.把出生日期字符串转换为日期格式. public static Date parse(String strDate) throws ParseException { SimpleDateFormat ...
- java身份证计算年龄
技术交流群: 233513714 /** * 根据身份证计算年龄 * * @param idcard * @return */ public static Integer idCardToAge(St ...
- java 根据生日计算年龄 Java问题通用解决代码
根据生日计算年龄可以通过Calendar实现.最简单可以考虑get(Calendar.DAY_OF_YEAR)来简单修正年龄,但是遇到生日在闰年的2月29之后,或者今年是闰年的2月29之后可能出现计算 ...
- SQL语句通过身份证号计算年龄
SQL语句通过身份证号计算年龄 1.截取身份证号上的出生日期 身份证一般为18位数和15位数 18位数身份证的第7-10位数是出生年份,第11-14位数是出生月日,所以18位身份证的年龄计算如下 su ...
- 用Java计算某个日期100天后的日期
用Java计算日期时间,首先考虑到时间类,Java中提供的和时间日期相关的类里,有一个Calendar类,可以获取某个时间日期. 计算某个日期100天后的日期,思路如下: 1.先设定时间,例如2017 ...
- java计算两个日期相差多少天
java计算两个日期相差多少天 public class DateUtil{ public static int betweenDays(Date startDate, Date endDate ) ...
- iOS 获取当前时间以及计算年龄(时间差)
获取当前时间 NSDate *now = [NSDate date]; NSLog(@"now date is: %@", now); NSCalendar *calendar = ...
随机推荐
- mac 上node.js环境的安装与测试
如果大家之前做过web服务器的人都知道,nginx+lua与现在流行的Node.js都是可以做web服务器的,前者在程序的写法和配置上要比后者麻烦,但用起来都是差不多.在这里建议大家如果对lua脚本语 ...
- linux文件权限查看及修改-chmod ------入门的一些常识
查看Linux文件的权限:ls -l 文件名称查看linux文件夹的权限:ls -ld 文件夹名称(所在目录)修改文件及文件夹权限:sudo chmod -(代表类型)×××(所有者)×××(组用户) ...
- ZK客户端脚本的简单使用
sh zkCli.sh [-server ip:port] :连接节点zk客户端[-server ip:port 用于连接集群中指定节点的客户端] 1.创建节点 create [-s] [-e] pa ...
- Ansible playbook循环实践总结<一>
1.标准Loops 标准loops可以直接减少task的次数,如下: [root@zero01 playbook]# vi loops.yaml --- - hosts: all gather_fac ...
- url路径去掉两个opencms
采用刚刚的方法安装OpenCMS之后,站点url中会存在两个opencms,造成访问url路径过长,下面讲解一种去掉两个opencms的方法. 1.去掉第一个opencms 安装时采用ROOT安装,即 ...
- asp.net core 使用 swagger 生成接口文档
参考地址:http://www.cnblogs.com/daxnet/p/6181366.html http://www.jianshu.com/p/fa5a9b76f3ed 微软参考文档:https ...
- QPS/TPS简介
系统吞度量要素 一个系统的吞度量(承压能力)与request对CPU的消耗.外部接口.IO等等紧密关联.单个reqeust 对CPU消耗越高,外部系统接口.IO影响速度越慢,系统吞吐能力越低,反之越高 ...
- PHP - curl实现采集
1.开启curl支持 由于php环境安装后默认是没有打开curl支持的,需修改php.ini文件,找到;extension=php_curl.dll,把前面的冒号去掉,重启服务即可: 2.使用curl ...
- Hibernate入门这一篇就够了
前言 本博文主要讲解介绍Hibernate框架,ORM的概念和Hibernate入门,相信你们看了就会使用Hibernate了! 什么是Hibernate框架? Hibernate是一种ORM框架,全 ...
- Android设置View抖动动画
在应用中,有时候我们要吸引用户去点击某些按钮,比如应用市场的推荐按钮,为了能够吸引用户主动点击而且不过分的打扰用户,最好的方法就是给我们想吸引用户注意的view添加一些抖动动画,比如这张图 这里我主要 ...