/*
  输入年月日,判断多少岁
 */
 import javax.swing.*;
 import java.text.*;
 import java.util.*;
 class xxx
 {
 
 public static void main(String [] args)
 {
      String aaa,bbb,ccc; 
      int  a,year,mon,day,age,nyear,nmon,nday,nage,xage;
      Date today = new Date();
         GregorianCalendar cal = new GregorianCalendar();
         nyear = cal.get(Calendar.YEAR);
         nmon = cal.get(Calendar.MONTH);
         nday = cal.get(Calendar.DATE);
           aaa = JOptionPane.showInputDialog(null,"请输入你的生日的年份:");
       year = Integer.parseInt(aaa);
             bbb = JOptionPane.showInputDialog(null,"请输入你的生日月份:");
             mon  =Integer.parseInt(bbb);
           
            ccc = JOptionPane.showInputDialog(null,"请输入你的生日日期:");
               day = Integer.parseInt(ccc);
            
              if(nyear>year||nmon>=mon)
              {
               age = nyear-year;
            JOptionPane.showMessageDialog(null,"你的出生是:"+
                              year+"年"+mon+"月"+day+"日"+"\n"        
                                             +"你今年是:" + age+"岁");
              }
              else if(nyear>year||nmon>=mon||nday<=day)
              {
              nage = nyear-year-1;
              JOptionPane.showMessageDialog(null,"你的出生是:"+
                             year+"年"+mon+"月"+day+"日"+"\n"        
                                             +"你今年是:" + nage+"岁");
              }
              else
            {
               xage = nyear-year-1;
              JOptionPane.showMessageDialog(null,"你的出生是:"+
                              year+"年"+mon+"月"+day+"日"+"\n"        
                                             +"你今年是:" + xage+"岁");
              }
 } 
 }

解决方案 »

  1.   

    没什么问题啊。我稍微整理了一下:
    package csdn.simple;import java.util.Calendar;
    import java.util.GregorianCalendar;import javax.swing.JOptionPane;public class GetAge {    public static void main(String[] args) {
            String aaa, bbb, ccc;
            int year, mon, day, age, nyear, nmon, nday, nage, xage;
            GregorianCalendar cal = new GregorianCalendar();
            nyear = cal.get(Calendar.YEAR);
            nmon = cal.get(Calendar.MONTH);
            nday = cal.get(Calendar.DATE);
            aaa = JOptionPane.showInputDialog(null, "请输入你的生日的年份:");
            year = Integer.parseInt(aaa);
            bbb = JOptionPane.showInputDialog(null, "请输入你的生日月份:");
            mon = Integer.parseInt(bbb);        ccc = JOptionPane.showInputDialog(null, "请输入你的生日日期:");
            day = Integer.parseInt(ccc);        if (nyear > year || nmon >= mon) {
                age = nyear - year;
                JOptionPane.showMessageDialog(null, "你的出生是:" + year + "年" + mon + "月" + day + "日"
                        + "\n" + "你今年是:" + age + "岁");
            } else if (nyear > year || nmon >= mon || nday <= day) {
                nage = nyear - year - 1;
                JOptionPane.showMessageDialog(null, "你的出生是:" + year + "年" + mon + "月" + day + "日"
                        + "\n" + "你今年是:" + nage + "岁");
            } else {
                xage = nyear - year - 1;
                JOptionPane.showMessageDialog(null, "你的出生是:" + year + "年" + mon + "月" + day + "日"
                        + "\n" + "你今年是:" + xage + "岁");
            }    }
    }
      

  2.   

    if(nyear>year||nmon>=mon)
    ->
    if(nyear>year&&nmon>=mon)其它的LZ想好它们之间的与或关系呀
      

  3.   

    两个if条件分别改为:
    nyear>year && nmon>mon
    nyear>year && nmon==mon && nday>=day另外,如果我输个2008年的生日会不报错的,而是说你是-2或-3岁,哈哈...再就是你的后两段代码有重复了呀,要我写就是:if(nyear>=year && (nmon>mon || (nmon==mon && nday>=day)))
    {
       age = nyear - year;
       JOptionPane.showMessageDialog(null, "你的出生是:" + year + "年" + mon + "月" + day + "日"
           + "\n" + "你今年是:" + age + "岁");}
    else if(nyear>year && (nmon <mon || (nmon==mon && nday<day)))
    {
        age = nyear - year - 1;
       JOptionPane.showMessageDialog(null, "你的出生是:" + year + "年" + mon + "月" + day + "日"
           + "\n" + "你今年是:" + age + "岁");}
    else{
       JOptionPane.showMessageDialog(null, "你的出生是:" + year + "年" + mon + "月" + day + "日"
           + "\n" + "哇靠!!哥们赶紧借月光宝盒我耍耍!!");
    }//还有就是如:1893/02/29,1985/13/32之类的日期错误,LZ需要的话自己处理下吧