Advertisement
Guest User

Untitled

a guest
Nov 18th, 2019
106
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.32 KB | None | 0 0
  1.  
  2. public class Date {
  3. private int month;
  4. private int day;
  5. private int year;
  6. public Date(int ismonth, int isday, int isyear) {
  7. month=ismonth;
  8. day=isday;
  9. year=isyear;
  10. }
  11. public Date() {
  12. month=1;
  13. day=1;
  14. year=1900;
  15. }
  16. public void printDate() {
  17. System.out.println(month + "/" + day + "/" + year);
  18. }
  19. public void advance() {
  20. boolean leapYear = (year % 4 == 0 && year % 100 != 0) || year % 400 == 0;
  21. day += 1;
  22. while ((month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10 || month == 12 && day > 31) || (month == 2 && (day > 29 && leapYear || day > 28 && !leapYear))||(month == 4 || month == 6 || month == 9 || month == 11 && day > 30)) {
  23. if (month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10 || month == 12) {
  24. if (day>31) {
  25. day = 1;
  26. month += 1;
  27. }
  28. }
  29. else if (month == 2) {
  30. if (leapYear && day>29) {
  31. day = 1;
  32. month+=1;
  33. }
  34. else if (day>28 && !leapYear){
  35. day = 1;
  36. month+=1;
  37. }
  38. }
  39. else {
  40. if (day>30) {
  41. day = 1;
  42. month+=1;
  43. }
  44. if (month>12) {
  45. while (month>12) {
  46. month = month - 12;
  47. year += 1;
  48. }
  49. }
  50. }
  51. }
  52. }
  53. public void advance(int adv) {
  54. boolean leapYear = (year % 4 == 0 && year % 100 != 0) || year % 400 == 0;
  55. day += adv;
  56. while ((month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10 || month == 12 && day > 31) || (month == 2 && (day > 29 && leapYear || day > 28 && !leapYear))||(month == 4 || month == 6 || month == 9 || month == 11 && day > 30)) {
  57. if (month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10 || month == 12) {
  58. if (day>31) {
  59. day = day-31;
  60. month += 1;
  61. }
  62. }
  63. else if (month == 2) {
  64. if (leapYear && day>29) {
  65. day = day-29;
  66. month+=1;
  67. }
  68. else if(day>28 && !leapYear) {
  69. day = day-28;
  70. month+=1;
  71. }
  72. }
  73. else {
  74. if (day>30) {
  75. day = day-30;
  76. month+=1;
  77. }
  78. if (month>12) {
  79. while (month>12) {
  80. month = month - 12;
  81. year += 1;
  82. }
  83. }
  84. }
  85. }
  86. }
  87. public boolean equals(Date d) {
  88. return d.toString().equals("("+ month + "/" + day + "/" + year + ")");
  89. }
  90. public int year() {
  91. return year;
  92. }
  93. public int day() {
  94. return year;
  95. }
  96. public int month() {
  97. return year;
  98. }
  99. public boolean isBefore(Date e) {
  100. //x.isBefore(y) true if x is before y
  101. if ((month < e.month() && year == e.year()) || (day < e.day() && month < e.month() && year == e.year()) || (year < e.year())) {
  102. return true;
  103. }
  104. return false;
  105. }
  106. public int daysUntil(Date x) {
  107. Date d1 = new Date(month, day, year);
  108. Date d2 = new Date(x.month(), x.day(), x.year());
  109. int counter = 0;
  110. if ((month < x.month() && year == x.year()) || (day < x.day() && month < x.month() && year == x.year()) || (year < x.year())) {
  111. while (!(month == d1.month() && day == d1.day() && year == d1.year)) {
  112. d1.advance();
  113. counter++;
  114. }
  115. } else if (month == x.month() && day == x.day() && year == x.year) {
  116. return 0;
  117. } else {
  118. while (!(month == d2.month() && day == d2.day() && year == d2.year)) {
  119. d2.advance();
  120. counter++;
  121. }
  122. }
  123. return counter;
  124. }
  125. public String toString() {
  126. return "("+ month + "/" + day + "/" + year + ")";
  127. }
  128. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement