SHARE
TWEET

Untitled

a guest Nov 18th, 2019 81 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  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. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top