Java 根据出生日期获得年龄

Java 根据出生日期获得年龄,第1张

实现步骤:

1、获取当前时间

2、判断出生日期是否小于当前时间,如果大于,则引发一场

3、从当前时间中取出年、月、日;从出生日期中取出年、月、日,年份相减

4、然后做具体判断

示例代码如下:

public static int getAge(Date birthDay) throws Exception { 

        //获取当前系统时间

        Calendar cal = CalendargetInstance(); 

        //如果出生日期大于当前时间,则抛出异常

        if (calbefore(birthDay)) { 

            throw new IllegalArgumentException( 

                "The birthDay is before NowIt's unbelievable!"); 

        } 

        //取出系统当前时间的年、月、日部分

        int yearNow = calget(CalendarYEAR); 

        int monthNow = calget(CalendarMONTH); 

        int dayOfMonthNow = calget(CalendarDAY_OF_MONTH); 

        

        //将日期设置为出生日期

        calsetTime(birthDay); 

        //取出出生日期的年、月、日部分  

        int yearBirth = calget(CalendarYEAR); 

        int monthBirth = calget(CalendarMONTH); 

        int dayOfMonthBirth = calget(CalendarDAY_OF_MONTH); 

        //当前年份与出生年份相减,初步计算年龄

        int age = yearNow - yearBirth; 

        //当前月份与出生日期的月份相比,如果月份小于出生月份,则年龄上减1,表示不满多少周岁

        if (monthNow <= monthBirth) { 

            //如果月份相等,在比较日期,如果当前日,小于出生日,也减1,表示不满多少周岁

            if (monthNow == monthBirth) { 

                if (dayOfMonthNow < dayOfMonthBirth) age--; 

            }else{ 

                age--; 

            } 

        } 

        Systemoutprintln("age:"+age); 

        return age; 

    }

因为你的这一句 Calendar c = CalendargetInstance();是写在循环外面的,声明了c以后那c就是这一刻的时间,无论你再怎么循环还是只打印声明c时的时间。这段代码我没太看明白你要做什么,不过你想循环输出当前的时间可以这样写:

while(true){

Calendar c = CalendargetInstance();

int time = cget(CalendarSECOND);

Systemoutprintln(time);

}

把Calendar c = CalendargetInstance();写在循环里就是不停的循环获得当前时间。

java获取当前时间精确到毫秒

 

new SimpleDateFormat("yyyyMMddHHmmssSSS") format(new Date() );

方法2:

Calendar Cld = CalendargetInstance();

int YY = Cldget(CalendarYEAR) ;

int MM = Cldget(CalendarMONTH)+1;

int DD = Cldget(CalendarDATE);

int HH = Cldget(CalendarHOUR_OF_DAY);

int mm = Cldget(CalendarMINUTE);

int SS = Cldget(CalendarSECOND);

int MI = Cldget(CalendarMILLISECOND);

String curTime = YY + MM + DD + HH + mm + SS + MI;

 

Calendar cal = CalendargetInstance();

javautilDate date = calgetTime();

SimpleDateFormat sdFormat = new SimpleDateFormat("yyyyMMddhhmmssSSS");

String myTime = sdFormatformat(currentTime);

javautilDate ctime = new javautilDate(); String rTime = ""; javatextSimpleDateFormat cf = new javatextSimpleDateFormat("yyyyMMdd"); rTime = cfformat(ctime); int time1 = IntegerPaseInt(rTime); 取得今天日期,然后把他转换成数字("2008-08-08"转换为20080808[数字类型]) 然后把数据库里的日期类型也转换为INT行,比较,然后,就很简单了吧 不明白问我把,QQ252578832

一 获取当前系统时间和日期并格式化输出:

import javautilDate;

import javatextSimpleDateFormat;

public class NowString {

public static void main(String[] args) {

SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//设置日期格式

Systemoutprintln(dfformat(new Date()));// new Date()为获取当前系统时间

}

}

二 在数据库里的日期只以年-月-日的方式输出,可以用下面两种方法:

1、用convert()转化函数:

String sqlst = "select convert(varchar(10),bookDate,126) as

convertBookDate from roomBook where bookDate between '2007-4-10' and

'2007-4-25'";

Systemoutprintln(rsgetString("convertBookDate"));

2、利用SimpleDateFormat类:

先要输入两个java包:

import javautilDate;

import javatextSimpleDateFormat;

然后:

定义日期格式:SimpleDateFormat sdf = new SimpleDateFormat(yy-MM-dd);

sql语句为:String sqlStr = "select bookDate from roomBook where bookDate between '2007-4-10' and '2007-4-25'";

输出:

Systemoutprintln(dfformat(rsgetDate("bookDate")));

java中获取当前日期和时间的方法

import javautilDate;

import javautilCalendar;

import javatextSimpleDateFormat;

public class TestDate{

public static void main(String[] args){

Date now = new Date();

SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");//可以方便地修改日期格式

String hehe = dateFormatformat( now );

Systemoutprintln(hehe);

Calendar c = CalendargetInstance();//可以对每个时间域单独修改

int year = cget(CalendarYEAR);

int month = cget(CalendarMONTH);

int date = cget(CalendarDATE);

int hour = cget(CalendarHOUR_OF_DAY);

int minute = cget(CalendarMINUTE);

int second = cget(CalendarSECOND);

Systemoutprintln(year + "/" + month + "/" + date + " " +hour + ":" +minute + ":" + second);

}

}

有时候要把String类型的时间转换为Date类型,通过以下的方式,就可以将你刚得到的时间字符串转换为Date类型了。

SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");

javautilDate time=null;

try {

time= sdfparse(sdfformat(new Date()));

} catch (ParseException e) {

eprintStackTrace();

}

/

获取当前系统时间

@return 返回短时间字符串格式yyyy-MM-dd

/

public static String getStringDateShort() {

Date currentTime = new Date();

SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");

String dateString = formatterformat(currentTime);

return dateString;

}

获取当前系统时间

@return返回短时间格式 yyyy-MM-dd

/

public static Date getNowDateShort() {

Date currentTime = new Date();

SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");

String dateString = formatterformat(currentTime);

ParsePosition pos = new ParsePosition(8);

Date currentTime_2 = formatterparse(dateString, pos);

return currentTime_2;

}

以上就是关于Java 根据出生日期获得年龄全部的内容,包括:Java 根据出生日期获得年龄、java获取当前时间、java如何获取当前精确时间等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/10138166.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存