fork download
  1. import java.io.*;
  2. import java.lang.*;
  3. import java.text.*;
  4. import java.util.*;
  5.  
  6. class Ideone
  7. {
  8. public static int dayOfWeek(int year, int month, int day)
  9. {
  10. day += month < 3 ? year-- : year - 2;
  11. return ((((23 * month) / 9) + day + 4 + (year / 4)) - (year / 100) + (year / 400)) % 7;
  12. }
  13.  
  14. public static void main (String[] args) throws java.lang.Exception
  15. {
  16. DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
  17.  
  18. Calendar start = Calendar.getInstance();
  19. start.setTime(df.parse("1900-01-01"));
  20. Calendar end = Calendar.getInstance();
  21. end.setTime(df.parse("2020-01-01"));
  22.  
  23. for (Date date = start.getTime(); start.before(end); start.add(Calendar.DATE, 1), date = start.getTime())
  24. {
  25. int expected = date.getDay();
  26. int actual = dayOfWeek(date.getYear() + 1900, date.getMonth() + 1, date.getDate());
  27. if (expected != actual)
  28. {
  29. throw new RuntimeException("expected: " + expected + ", actual: " + actual);
  30. }
  31. }
  32. }
  33. }
Success #stdin #stdout 0.27s 321600KB
stdin
Standard input is empty
stdout
Standard output is empty