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); }}
二楼实现的不错,又学了个新方法 ^_^ 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));
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 "字符串格式不正确";
}
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);
}}
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));
}