2015-05-21 59 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); 
相关问题