Java: How do I get the date of x day in a month ( e.g. Third Monday in February 2012)

前端 未结 8 1652
执笔经年
执笔经年 2020-12-09 10:44

I am somewhat struggling with this.

I want to setup my Calendar to let\'s say: Third Monday in February 2012. And I didn\'t find any way of doing th

8条回答
  •  难免孤独
    2020-12-09 11:39

    All you need is a loop:

    public class CalculateDate {
    
    public static void main( String ... args ) {
    
        Calendar c = Calendar.getInstance();
        c.set( Calendar.YEAR, 2012 );
        c.set( Calendar.MONTH , Calendar.MAY);
        c.set( Calendar.DAY_OF_MONTH, 0 );
        c.add( Calendar.DAY_OF_MONTH, -1 );
    
        System.out.println( c.getTime() );
    
        int mondaysCount = 0;
    
        while ( mondaysCount != 4 ) {
            c.add( Calendar.DAY_OF_MONTH, 1 );
            if ( c.get( Calendar.DAY_OF_WEEK ) == Calendar.MONDAY ) {
                mondaysCount++; 
            }       
        }
    
        System.out.printf( "The fourth monday of may is %s", c.getTime() );     
    
    }
    
    }
    

提交回复
热议问题