2015-05-21 109 views
-1

從java.util.Date中,找出它是否是一個月的第一天的最簡單/最智能的方法是什麼?從Java Date對象查找是否是月份的第一天

+0

它會是有用如果你告訴我們你已經嘗試了什麼? –

+0

使用Java 8s時間API或Joda時間 – MadProgrammer

+0

可能的重複[下個月的第一天與Java Joda時間](http://stackoverflow.com/questions/4786169/first-day-of-next-month-with- Java的喬達時間) –

回答

1

隨着 「經典」 的Java API(Java的前8):

public static boolean isFirstDayOfMonth(final Date date) 
{ 
    final Calendar cal = Calendar.getInstance(); 
    cal.setTime(date); 
    final int dom = cal.get(Calendar.DAY_OF_MONTH); 
    return dom == 1; 
} 

然後你只需要調用它像這樣:

isFirstDayOfMonth(new Date()); 
0

Calendar類是這樣的事情做得更好。

但是,如果你真的想只Date要做到這一點,那麼

 Date d = new Date(); 
     d = new Date(d.getYear(), d.getMonth(), 0); 

     switch (d.getDay()) { 
     case 0: System.out.println("Monday"); 
     break; 
     case 1: System.out.println("Tuesday"); 
     break; 
     case 2: System.out.println("Wednessday"); 
     break; 
     case 3: System.out.println("Thusrday"); 
     break; 
     case 4: System.out.println("Friday"); 
     break; 
     case 5: System.out.println("Satureday"); 
     break; 
     case 6: System.out.println("Sunday"); 
     break; 
     } 
0

的Java 8

Date date = new Date(); 
Instant instant = date.toInstant(); 
int dom = LocalDateTime. 
     ofInstant(instant, ZoneId.systemDefault()). 
     getDayOfMonth(); 
System.out.println(dom); 

約達時間(前的Java 8)

Date date = new Date(); 
int dom = LocalDateTime.fromDateFields(date).getDayOfMonth(); 
System.out.println(dom); 
相關問題