Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class Date {
- private int month;
- private int day;
- private int year;
- public Date(int ismonth, int isday, int isyear) {
- month=ismonth;
- day=isday;
- year=isyear;
- }
- public Date() {
- month=1;
- day=1;
- year=1900;
- }
- public void printDate() {
- System.out.println(month + "/" + day + "/" + year);
- }
- public void advance() {
- boolean leapYear = (year % 4 == 0 && year % 100 != 0) || year % 400 == 0;
- day += 1;
- 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)) {
- if (month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10 || month == 12) {
- if (day>31) {
- day = 1;
- month += 1;
- }
- }
- else if (month == 2) {
- if (leapYear && day>29) {
- day = 1;
- month+=1;
- }
- else if (day>28 && !leapYear){
- day = 1;
- month+=1;
- }
- }
- else {
- if (day>30) {
- day = 1;
- month+=1;
- }
- if (month>12) {
- while (month>12) {
- month = month - 12;
- year += 1;
- }
- }
- }
- }
- }
- public void advance(int adv) {
- boolean leapYear = (year % 4 == 0 && year % 100 != 0) || year % 400 == 0;
- day += adv;
- 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)) {
- if (month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10 || month == 12) {
- if (day>31) {
- day = day-31;
- month += 1;
- }
- }
- else if (month == 2) {
- if (leapYear && day>29) {
- day = day-29;
- month+=1;
- }
- else if(day>28 && !leapYear) {
- day = day-28;
- month+=1;
- }
- }
- else {
- if (day>30) {
- day = day-30;
- month+=1;
- }
- if (month>12) {
- while (month>12) {
- month = month - 12;
- year += 1;
- }
- }
- }
- }
- }
- public boolean equals(Date d) {
- return d.toString().equals("("+ month + "/" + day + "/" + year + ")");
- }
- public int year() {
- return year;
- }
- public int day() {
- return year;
- }
- public int month() {
- return year;
- }
- public boolean isBefore(Date e) {
- //x.isBefore(y) true if x is before y
- if ((month < e.month() && year == e.year()) || (day < e.day() && month < e.month() && year == e.year()) || (year < e.year())) {
- return true;
- }
- return false;
- }
- public int daysUntil(Date x) {
- Date d1 = new Date(month, day, year);
- Date d2 = new Date(x.month(), x.day(), x.year());
- int counter = 0;
- if ((month < x.month() && year == x.year()) || (day < x.day() && month < x.month() && year == x.year()) || (year < x.year())) {
- while (!(month == d1.month() && day == d1.day() && year == d1.year)) {
- d1.advance();
- counter++;
- }
- } else if (month == x.month() && day == x.day() && year == x.year) {
- return 0;
- } else {
- while (!(month == d2.month() && day == d2.day() && year == d2.year)) {
- d2.advance();
- counter++;
- }
- }
- return counter;
- }
- public String toString() {
- return "("+ month + "/" + day + "/" + year + ")";
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement