String text=input.readLine(); Integer x=new Integer(text); int year=x.intValue(); compute age=new compute(year); System.out.println("You are "+age.setYear()+"years old.");
} } class compute { public compute(int age) { this.age=age; } public int setYear() { return age=2004-age; } private int age; }agree with :"不过Sun已经不推荐使用Date类了,可能以后的版本要取消。你可以用GregorianCalendar类替,功能更强。"
public static int getAge(){ Date date = new Date(80,3,10); Calendar c1 = Calendar.getInstance(); c1.setTime(date); Calendar c2 = Calendar.getInstance(); int y = c2.get(Calendar.YEAR) - c1.get(Calendar.YEAR); int size = c2.get(Calendar.MONTH) - c1.get(Calendar.MONTH); if(size < 0){ y --; }else if(size == 0){ int dsize = c2.get(Calendar.DATE) - c1.get(Calendar.DATE); if(dsize < 0){ y --; } } System.out.println(y); return y; }
Date类是以 1970.1.1 00:00:00 UTC 起的毫秒数计时的,可以用Date.getTime()取到这个毫秒数。
你只需把两个Date对象的毫秒数相减,在除以1000*60*60*24就是精确的周岁了。
不过Sun已经不推荐使用Date类了,可能以后的版本要取消。你可以用GregorianCalendar类替,功能更强。
import java.util.Calendar;
import java.text.SimpleDateFormat;
import java.text.ParseException;public class AgeTest { public static int getAge(String oBrithday) throws ParseException {
Calendar cal = Calendar.getInstance();
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd "); String mDateTime=formatter.format(cal.getTime());
java.util.Date today = formatter.parse(mDateTime);
java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat("yyyy-MM-dd"); java.util.Date birday = sdf.parse(oBrithday);
int age = today.getYear()-birday.getYear();
return age; } public static void main(String[] args) throws ParseException { int age =AgeTest.getAge("1977-10-10");
System.out.println(age);
}
}
public class yourAge
{
public static void main(String[] args) throws Exception
{
InputStreamReader reader=new InputStreamReader(System.in);
BufferedReader input=new BufferedReader(reader);
String text=input.readLine();
Integer x=new Integer(text);
int year=x.intValue();
compute age=new compute(year);
System.out.println("You are "+age.setYear()+"years old.");
}
}
class compute
{
public compute(int age)
{
this.age=age;
}
public int setYear()
{
return age=2004-age;
}
private int age;
}agree with :"不过Sun已经不推荐使用Date类了,可能以后的版本要取消。你可以用GregorianCalendar类替,功能更强。"
Date date = new Date(80,3,10);
Calendar c1 = Calendar.getInstance();
c1.setTime(date);
Calendar c2 = Calendar.getInstance();
int y = c2.get(Calendar.YEAR) - c1.get(Calendar.YEAR);
int size = c2.get(Calendar.MONTH) - c1.get(Calendar.MONTH);
if(size < 0){
y --;
}else if(size == 0){
int dsize = c2.get(Calendar.DATE) - c1.get(Calendar.DATE);
if(dsize < 0){
y --;
}
}
System.out.println(y);
return y;
}
birth.set(year,month,day);//month=0表示一月,1表示二月...
Calendar today = Calendar.getInstance();if(today.get(Calendar.MONTH) > birth.get(Calendar.MONTH) ||
(today.get(Calendar.MONTH) == birth.get(Calendar.MONTH)) &&
today.get(Calendar.DATE) >= birth.get(Calendar.DATE)))
age = today.get(Calendar.YEAR) - birth.get(Calendar.YEAR);
else
age = today.get(Calendar.YEAR) - birth.get(Calendar.YEAR) - 1;//当年未过生日
我会把你输入日期用字符串代替。
然后截取前4位转换成int型,在用java.until.date类的getYear() + 1900获得当前的年份。
然后相减。
呵呵我觉得这样也不错哦。
^_^