fork(1) download
  1. /* package whatever; // don't place package name! */
  2.  
  3. import java.util.*;
  4. import java.lang.*;
  5. import java.io.*;
  6.  
  7. import java.time.*;
  8. import java.time.temporal.*;
  9.  
  10. /* Name of the class has to be "Main" only if the class is public. */
  11. class Ideone
  12. {
  13. public static void main (String[] args) throws java.lang.Exception
  14. {
  15.  
  16. Set<DayOfWeek> daysOfWeek = EnumSet.noneOf ( DayOfWeek.class );
  17. daysOfWeek.add ( DayOfWeek.MONDAY );
  18. daysOfWeek.add ( DayOfWeek.WEDNESDAY );
  19.  
  20. YearMonth ym = YearMonth.of ( 2017 , Month.JANUARY ); // Or ( 2017 , 1 ) for January.
  21.  
  22. LocalDate firstOfMonth = ym.atDay ( 1 );
  23.  
  24. for ( DayOfWeek dayOfWeek : daysOfWeek ) {
  25. List<LocalDate> dates = new ArrayList<> ( 5 );
  26. LocalDate ld = firstOfMonth.with ( TemporalAdjusters.dayOfWeekInMonth ( 1 , dayOfWeek ) );
  27. do {
  28. dates.add ( ld );
  29. // Set up next loop.
  30. ld = ld.plusWeeks ( 1 );
  31. } while ( YearMonth.from ( ld ).equals ( ym ) ); // While in the targeted month.
  32.  
  33. System.out.println ( "ym.toString(): " + ym );
  34. System.out.println ( "dayOfWeek.toString(): " + dayOfWeek );
  35. System.out.println ( "dates.toString(): " + dates );
  36. System.out.println ( "----" );
  37. }
  38.  
  39.  
  40. }
  41. }
Success #stdin #stdout 0.1s 711680KB
stdin
Standard input is empty
stdout
ym.toString(): 2017-01
dayOfWeek.toString(): MONDAY
dates.toString(): [2017-01-02, 2017-01-09, 2017-01-16, 2017-01-23, 2017-01-30]
----
ym.toString(): 2017-01
dayOfWeek.toString(): WEDNESDAY
dates.toString(): [2017-01-04, 2017-01-11, 2017-01-18, 2017-01-25]
----