不知道Calendar里面是否有一个方法可以完成这个要求。如果哪位高手知道的话,可否告诉一下小弟。先谢了!!!
解决方案 »
- 如何选取特定文件?求大神解答
- 初学基础作业里一个抽象类构造方法的问题,我这个写不出来,所以也不能compile
- 新手问问题
- java.lang.Throwable: Socket is closed
- 27岁刚开始学编程,来得及吗,各位大哥
- 有关IO 报NULLPOINTERException
- 如何连续访问两个连接?
- 菜鸟问题:编译后提示错误,package java.servlet doesn't exsit
- 为什么我无法使用JAVAX。SWING。*;
- 怎样用actionPerformed方法,创建jlabel,特急!问了好多人,都不会.
- 请教:一个解压缩的流处理问题
- 显示Exception in thread "main" java.lang.NullP的错误,在线等
Calendar c = Calendar.getInstance();
//设置为该月,例如08年1月,日期随意
c.set(2008,0,1);
//获得该月的日期
int max = c.getActualMaximum(Calendar.DATE);
import java.text.SimpleDateFormat;
import java.util.Date;
public class Test {
public static void main(String[] args) {
Date date=new Date();
SimpleDateFormat sdf=new SimpleDateFormat ("yyyy年MM月dd天");
System.out.println(sdf.format(date));
}
}
好象与LZ的要求不怎么符合...LZ要的是输入月份,得到该月的实际天数.
问LZ是吧?
这就是当前月的最大天数。
* <p>Title: 时间格式转化与计算</p>
* <p>Copyright: Copyright (c) 2004</p>
* <p>Company: www.code-park.com</p>
* @author 网络信息部 范庆丰
* @version 1.0
*/package www.fqf.cn.com;import java.util.Calendar;
import java.util.Date;
import java.text.*;
import java.util.GregorianCalendar;public class DateTime {
public DateTime() {
} /**
* 取得系统当前时间
* @return String yyyy-mm-dd
*/
public String getCurrentDate() {
Calendar rightNow = Calendar.getInstance();
int year = rightNow.get(rightNow.YEAR);
int month = rightNow.get(rightNow.MONTH) + 1;
int day = rightNow.get(rightNow.DATE);
return year + "-" + month + "-" + day;
} /**
* 取得系统当前时间
* @return String yyyy年mm月dd日
*/
public String getCurrentDate1() {
Calendar rightNow = Calendar.getInstance();
int year = rightNow.get(rightNow.YEAR);
int month = rightNow.get(rightNow.MONTH) + 1;
int day = rightNow.get(rightNow.DATE);
return year + "年" + month + "月" + day + "日";
} /**
* 取得系统当前时间
* @return String yyyymmdd
*/
public String getCurrentDate2() {
Calendar rightNow = Calendar.getInstance();
int year = rightNow.get(rightNow.YEAR);
int month = rightNow.get(rightNow.MONTH) + 1;
int day = rightNow.get(rightNow.DATE);
return year + "" + month + "" + day;
} /**
* 取得系统当前时间
* @return String yyyy-mm
*/
public String getCurrentDate3() {
Calendar rightNow = Calendar.getInstance();
int year = rightNow.get(rightNow.YEAR);
int month = rightNow.get(rightNow.MONTH) + 1;
//int day = rightNow.get(rightNow.DATE);
return year + "-" + month;
} /**
* 取得系统当前时间
* @return String yyyyMMddhhmmss
*/
public String getCurrentDate4() {
Calendar c = Calendar.getInstance();
c.add(c.SECOND, 0); return "" + c.get(c.YEAR) + "" + (c.get(c.MONTH) + 1) + "" + c.get(c.DATE)+""+c.get(c.HOUR_OF_DAY)+""+c.get(c.MINUTE)+""+c.get(c.SECOND);} /**
* 取得系统当前时间
* @return String yyyy-MM-dd hh:mm:ss
*/
/* public String getCurrentDate5() {
SimpleDateFormat simpleDateFormat =new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
java.util.Date date = new java.util.Date();
String time = simpleDateFormat.format(date);
return time;
}
*/
/**
* 取得系统当前时间
* @return String yyyy-MM-dd hh:mm:ss
*/ public String getCurrentDate5(){
Calendar c = Calendar.getInstance();
c.add(c.SECOND, 0);
return "" + c.get(c.YEAR) + "-" + (c.get(c.MONTH) + 1) + "-" + c.get(c.DATE)+" "+c.get(c.HOUR_OF_DAY)+":"+c.get(c.MINUTE)+":"+c.get(c.SECOND);
} /**
* 取得系统当前时间 常用于订单号
* @return String yyyyMMddhhmmss
*/
public String getCurrentDate6() {
Calendar c = Calendar.getInstance();
c.add(c.SECOND, 0);
String year=c.get(c.YEAR)+"";
return "" + year.subSequence(2,year.length())+ "" + (c.get(c.MONTH) + 1) + "" + c.get(c.DATE)+"-"+c.get(c.HOUR_OF_DAY)+""+c.get(c.MINUTE)+""+c.get(c.SECOND)+"-"+c.get(c.MILLISECOND); } //YYYYMMDD
public String getCurrentDate7() {
Calendar c = Calendar.getInstance();
c.add(c.SECOND, 0);
String year=c.get(c.YEAR)+"";
int month=c.get(c.MONTH) + 1;
String strmonth=month+"";
if(month<10){
strmonth="0"+month;
}
int day=c.get(c.DATE);
String strday=day+"";
if(day<10){
strday="0"+day;
}
return "" + year+ "" + strmonth + "" + strday; }
//hhmmsswww
public String getCurrentDate8() {
Calendar c = Calendar.getInstance();
c.add(c.SECOND, 0);
int hh=c.get(c.HOUR_OF_DAY);
String strhh=hh+"";
if(hh<10){
strhh="0"+hh;
}
int mm=c.get(c.MINUTE);
String strmm=mm+"";
if(mm<10){
strmm="0"+mm;
}
int ss=c.get(c.SECOND);
String strss=ss+"";
if(ss<10){
strss="0"+ss;
}
int www=c.get(c.MILLISECOND);
String strwww=www+"";
if(www<10){
strwww="00"+www;
}if(9<www&&www<100){
strwww="0"+www;
} return strhh+""+strmm+""+strss+""+strwww; } /**
* 取得系统当前时间前n个月的相对应的一天
* @param n int
* @return String yyyy-mm-dd
*/
public String getNMonthBeforeCurrentDay(int n) {
Calendar c = Calendar.getInstance();
c.add(c.MONTH, -n);
return "" + c.get(c.YEAR) + "-" + (c.get(c.MONTH) + 1) + "-" + c.get(c.DATE); } /**
* 取得系统当前时间后n个月的相对应的一天
* @param n int
* @return String yyyy-mm-dd
*/
public String getNMonthAfterCurrentDay(int n) {
Calendar c = Calendar.getInstance();
c.add(c.MONTH, n);
return "" + c.get(c.YEAR) + "-" + (c.get(c.MONTH) + 1) + "-" + c.get(c.DATE); } /**
* 取得系统当前时间前n天
* @param n int
* @return String yyyy-mm-dd
*/
public String getNDayBeforeCurrentDate(int n) {
Calendar c = Calendar.getInstance();
c.add(c.DAY_OF_MONTH, -n);
return "" + c.get(c.YEAR) + "-" + (c.get(c.MONTH) + 1) + "-" + c.get(c.DATE);
} /**
* 取得系统当前时间后n天
* @param n int
* @return String yyyy-mm-dd
*/
public String getNDayAfterCurrentDate(int n) {
Calendar c = Calendar.getInstance();
c.add(c.DAY_OF_MONTH, n);
return "" + c.get(c.YEAR) + "-" + (c.get(c.MONTH) + 1) + "-" + c.get(c.DATE);
}
public String getNDayAfterCurrentDate1(int n) {
Calendar c = Calendar.getInstance();
c.add(c.DAY_OF_MONTH, n);
return "" + c.get(c.YEAR) + "-" + (c.get(c.MONTH) + 1) + "-" + c.get(c.DATE)+" "+c.get(c.HOUR_OF_DAY)+":"+c.get(c.MINUTE)+":"+c.get(c.SECOND);
}
//---------------------------------------------------------------------
//取过去一个时间对应的系统当年的一天
public String getCurrentDateAfterPastDate(String sPastDate) {
if (sPastDate != null && !sPastDate.equals("")) {
Date date = switchStringToDate(sPastDate);
Calendar c = Calendar.getInstance();
c.setTime(date);
int iPastYear = c.get(c.YEAR);
Calendar c1 = Calendar.getInstance();
int iCurrentYear = c1.get(c1.YEAR);
c.add(c.YEAR, iCurrentYear - iPastYear);
return "" + c.get(c.YEAR) + "-" + (c.get(c.MONTH) + 1) + "-" +
c.get(c.DATE);
}
else {
return null;
}
} /**
* 将一个日期字符串转化成日期
* @param sDate String
* @return Date yyyy-mm-dd
*/
public Date switchStringToDate(String sDate) {
Date date = null;
try {
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
date = df.parse(sDate); }
catch (Exception e) {
System.out.println("日期转换失败:" + e.getMessage());
}
return date;
} /**
* 输入两个字符串型的日期,比较两者的大小
* @param fromDate String
* @param toDate String
* @return boolean before为true
*/
public boolean compareTwoDateBigOrSmall(String fromDate, String toDate) {
Date dateFrom = this.switchStringToDate(fromDate);
Date dateTo = this.switchStringToDate(toDate);
if (dateFrom.before(dateTo)) {
return true;
}
else {
return false;
}
}
* 将一个日期字符串转化成Calendar
* @param sDate String
* @return Calendar
*/
public Calendar switchStringToCalendar(String sDate) {
Date date = switchStringToDate(sDate);
Calendar c = Calendar.getInstance();
c.setTime(date);
return c;
} /**
* 将一个日期转化成Calendar
* @param date Date
* @return Calendar
*/
public Calendar switchStringToCalendar(Date date) {
Calendar c = Calendar.getInstance();
c.setTime(date);
return c;
} public String string2Date(String dateString)
throws java.lang.Exception {
/*DateFormat dateFormat;
dateFormat = new SimpleDateFormat("yyyy-MM-dd kk:mm:ss");
dateFormat.setLenient(false);
java.util.Date timeDate = dateFormat.parse(dateString);//util类型
//java.sql.Date dateTime = new java.sql.Date(timeDate.getTime());//sql类型
java.sql.Timestamp dateTime = new java.sql.Timestamp(timeDate.getTime());//Timestamp类型
*/
SimpleDateFormat newk = new SimpleDateFormat ("yyyy.MM.dd hh:mm:ss");
SimpleDateFormat old = new SimpleDateFormat("MMM dd hh:mm:ss yyyy"); String strDate = "Mar 22 00:42:00 2002";
Date d = old.parse(strDate);
System.out.println(newk.format(d)); return newk.format(d);
} /**
* 取得某个时间前n个月的相对应的一天
* @param sDate String
* @param n int
* @return String yyyy-mm-dd
*/
public String getNMonthBeforeOneDay(String sDate, int n) {
Calendar c = switchStringToCalendar(sDate);
c.add(c.MONTH, -n);
return "" + c.get(c.YEAR) + "-" + (c.get(c.MONTH) + 1) + "-" + c.get(c.DATE); } //取得某个时间后n个月的相对应的一天
public String getNMonthAfterOneDay(String sDate, int n) {
Calendar c = switchStringToCalendar(sDate);
c.add(c.MONTH, n);
return "" + c.get(c.YEAR) + "-" + (c.get(c.MONTH) + 1) + "-" + c.get(c.DATE); } //取得某个时间前n天,格式为yyyy-mm-dd
public String getNDayBeforeOneDate(String sDate, int n) {
Calendar c = switchStringToCalendar(sDate);
c.add(c.DAY_OF_MONTH, -n);
return "" + c.get(c.YEAR) + "-" + (c.get(c.MONTH) + 1) + "-" + c.get(c.DATE);
} //取得某个时间后n天,格式为yyyy-mm-dd
public String getNDayAfterOneDate(String sDate, int n) {
Calendar c = switchStringToCalendar(sDate);
c.add(c.DAY_OF_MONTH, n);
return "" + c.get(c.YEAR) + "-" + (c.get(c.MONTH) + 1) + "-" + c.get(c.DATE);
} //判断系统当前时间是不是润年
public boolean isRunNian() {
java.util.Calendar rightNow = java.util.Calendar.getInstance();
int year = rightNow.get(rightNow.YEAR);
if (0 == year % 4 && (year % 100 != 0 || year % 400 == 0)) {
return true;
}
else {
return false;
} }
//
public int getWeek(String date){
String[] a=date.split("-");
int year=Integer.parseInt(a[0]);
int month=Integer.parseInt(a[1])-1;
int day=Integer.parseInt(a[2]);
GregorianCalendar d=new GregorianCalendar();
d.set(year,month,day);
int weekday=d.get(Calendar.DAY_OF_WEEK);
//System.out.println(weekday-1);
return weekday-1;
}
public String[] getWeekdays(String date){
int atweek= getWeek(date);
//System.out.println(getNDayBeforeCurrentDate(atweek));
String[] days=new String[7];
for(int i=0;i<7;i++){
days[i]=getNDayAfterOneDate(getNDayBeforeOneDate(date,atweek-1),i);
}
// for(int i=0;i<7;i++){
// System.out.println("==="+days[i]);
// }
return days;
}
public static void main(String args[]) {
DateTime a = new DateTime();
try{
a.getWeekdays("2008-12-30");
System.out.println(a.getNDayAfterCurrentDate(1));
System.out.println(a.getNDayAfterCurrentDate(0));
System.out.println(a.compareTwoDateBigOrSmall("2005-12-27 11:01:45.0","2005-12-10 13:16:58.0"));
}catch(Exception e){System.err.println();} }
}