实现步骤:
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如何获取当前精确时间等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)