chy2swl(学不可以已)方法有明显问题。

解决方案 »

  1.   

    你写的挺好,没有错,我想jdk中没有这种方法
      

  2.   

    放心,有现成的方法。
    Date类是以 1970.1.1 00:00:00 UTC 起的毫秒数计时的,可以用Date.getTime()取到这个毫秒数。
    你只需把两个Date对象的毫秒数相减,在除以1000*60*60*24就是精确的周岁了。
    不过Sun已经不推荐使用Date类了,可能以后的版本要取消。你可以用GregorianCalendar类替,功能更强。
      

  3.   

    package test;import java.util.Date;
    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);
      }
    }
      

  4.   

    import java.io.*;
    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类替,功能更强。"
      

  5.   

    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;
      }
      

  6.   

    Calendar birth = Calendar.getInstance();
    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;//当年未过生日
      

  7.   

    要是我就不象你那样做!~
    我会把你输入日期用字符串代替。
    然后截取前4位转换成int型,在用java.until.date类的getYear() + 1900获得当前的年份。
    然后相减。
    呵呵我觉得这样也不错哦。
    ^_^
      

  8.   

    多画一个输入框要求用户输入年龄,否则不能"next"......