给定一个日期字符串,得到本月最后一天是几号,请大家帮忙!谢谢了,
如:给定  2009-3 得到本月最后一天是31号, 2009-2 得到本月最后一天是28号,用java写一个类,谢谢先!!!急

解决方案 »

  1.   

    public static String getDay(String s){
            String []split=s.split("\\-");//字符串必须是yyyy-MM这种格式的
            if(split.length==2){
             int year=Integer.parseInt(split[0]);
             int month=Integer.parseInt(split[1]);
             Calendar c=Calendar.getInstance();
             c.set(Calendar.YEAR, year);
             c.set(Calendar.MONTH, month-1);
             return c.getActualMaximum(Calendar.DAY_OF_MONTH)+"";
            }
            else
             return "字符串格式不正确";
    }
      

  2.   

    不晓得有问题不   大略的试了一下可以
    import java.text.SimpleDateFormat;
    import java.util.Calendar;
    import java.util.Date;public class GetLastDate { /**
     * 得到每个月的最后一天
     * @param dateStr 日期字串格式要求 <b>年</b> "分隔符" <b>月</b>
     * @param separator 分隔符
     * @return
     */
    public String getTheLastDate(String dateStr,String separator){

    String[] strs = dateStr.split(separator);
    String lastDate = null;
    int year = Integer.valueOf(strs[0]);
    int month = Integer.valueOf(strs[1]);
    Calendar  c = Calendar.getInstance();
    c.set(Calendar.YEAR, year);
    c.set(Calendar.MONTH, month-1);
    c.set(Calendar.DATE, 1);
    c.add(Calendar.MONTH,1);
    c.add(Calendar.DATE, -1);
    Date d = c.getTime();
    SimpleDateFormat sdf = new SimpleDateFormat("dd");
    lastDate = sdf.format(d);

    return lastDate;
    }
    /**
     * @param args
     */
    public static void main(String[] args) {
    GetLastDate gd = new GetLastDate();
    String a = gd.getTheLastDate("1982-02", "-");

    System.out.println(a);
    }}
      

  3.   

    二楼实现的不错,又学了个新方法 ^_^
    public static void main(String[] args) {
            Scanner in = new Scanner(System.in);
            System.out.println("Input the date like yyyy-mm");
            String s = in.nextLine();
            int year = Integer.valueOf(s.substring(0, 4));
            int month = Integer.valueOf(s.substring(5));
            
            Calendar calendar = Calendar.getInstance();
            calendar.set(Calendar.YEAR, year);
            calendar.set(Calendar.MONTH, month - 1);
            
            System.out.println(calendar.getActualMaximum(calendar.DAY_OF_MONTH));
        }