欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Java 中获得当前年份和月份最大天数。

程序员文章站 2022-04-19 19:08:12
...
拿到当前月份最大天数,.这个需求用的非常之多。 解决的方法也很多种..
我做项目中用的最多的就是下面的这种:


//写个主方法测试;是否通过..
public static void main(String[] args) {
		TestExtendedWorkHourApplication a = new TestExtendedWorkHourApplication();
                                //传入年份和月份,返回月份中最大的天数。
		int monthMaxday = a.findMaxDayInMonth(2011, 3);
		System.out.println(maxday);
	}
	//调用方法;传入年份和月份。
	 public static int findMaxDayInMonth(int year, int month) {      
        //得到Calendar实例对象。
        Calendar calendar = Calendar.getInstance();      
        if (year > 0) {      
            calendar.set(Calendar.YEAR, year);      
        }      
              
        if (month > 0) {      
            calendar.set(Calendar.MONTH, month - 1);      
        }      
              
        return findMaxDayInMonth(calendar);      
	    }  
	 
	 public static int findMaxDayInMonth(Calendar calendar) {      
        if (calendar == null) {      
            return 0;      
        }          
                    //得到实际月份的最大天数。
	    return calendar.getActualMaximum(Calendar.DAY_OF_MONTH);      
	 }

 

 

 

Calendar time=Calendar.getInstance(); 
time.clear(); 
time.set(Calendar.YEAR,year); //year 为 int 
time.set(Calendar.MONTH,i-1);//注意,Calendar对象默认一月为0           
int day=time.getActualMaximum(Calendar.DAY_OF_MONTH);//本月份的天数 
注:在使用set方法之前,必须先clear一下,否则很多信息会继承自系统当前时间 

//Calendar和Date的转化 

(1) Calendar转化为Date 
Calendar cal=Calendar.getInstance(); 
Date date=cal.getTime(); 

(2) Date转化为Calendar 
Date date=new Date(); 
Calendar cal=Calendar.getInstance(); 
cal.setTime(date); 

//格式化输出日期时间

Date date=new Date(); 
SimpleDateFormat df=new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); 
String time=df.format(date); 
System.out.println(time); 

4.计算一年中的第几星期 

(1)计算某一天是一年中的第几星期 
Calendar cal=Calendar.getInstance(); 
cal.set(Calendar.YEAR, 2006); 
cal.set(Calendar.MONTH,; 
cal.set(Calendar.DAY_OF_MONTH, 3); 
int weekno=cal.get(Calendar.WEEK_OF_YEAR); 

(2)计算一年中的第几星期是几号 
SimpleDateFormat df=new SimpleDateFormat("yyyy-MM-dd"); 
Calendar cal=Calendar.getInstance(); 
cal.set(Calendar.YEAR, 2006); 
cal.set(Calendar.WEEK_OF_YEAR, 1); 
cal.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY); 
System.out.println(df.format(cal.getTime())); 
输出: 
2006-01-02 

5.add()和roll()的用法(不太常用) 

(1)add()方法 
SimpleDateFormat df=new SimpleDateFormat("yyyy-MM-dd"); 
Calendar cal=Calendar.getInstance(); 
cal.set(Calendar.YEAR, 2006); 
cal.set(Calendar.MONTH,; 
cal.set(Calendar.DAY_OF_MONTH, 3); 
cal.add(Calendar.DATE, -4); 
Date date=cal.getTime(); 
System.out.println(df.format(date)); 
cal.add(Calendar.DATE, 4); 
date=cal.getTime(); 
System.out.println(df.format(date)); 
输出: 
    2006-08-30 
      2006-09-03 
 

 

相关标签: Java