Hi I\'m still having trouble with this assignment. I need to fix the methodology
ID: 673188 • Letter: H
Question
Hi I'm still having trouble with this assignment. I need to fix the methodology for feb so that if user inputs Feb 29, 2000(leapyear) the next day is March 1, 2000 and not Feb 30,2000 also, the major issue, right now I have my application inside the IncDate class. I need to take that application and create a test application that tests all functionality of both classes by creating array of dates to be tested. I'm really struggling with separating the exsisting code. I would like to call the test application the IncDateTest class. I can always adjust array for any additional tests I have to do but I'm so stuck.
package dates;
import java.util.Scanner;
public class IncDate extends Date
{
public IncDate (int newMonth,int newDay, int newYear)
{
super (newMonth, newDay, newYear);
}
public int count = 0;
public void increment()//increment method
{
if (month == 1 && day == 31) //if month = 1 and day = 31, day = 1 and increment month by 1
{day = 1;
month = month + 1;
}
else if (month ==2 && day == 28)//if month = 2 and day = 28 and if it is a leapyear, increment day to 29, and keep month at 2
{if(isLeapYear(year)){
day = 29;
month = 2;
}else { //else if not leapyear day is 1 and month is month + 1
day = 1;
month = month + 1;
}
}
else if (month == 3 && day == 31)//else if month is 3 and day is 31, day is 1 and increment month by 1
{day = 1;
month = month + 1;
}
else if (month == 4 && day == 30) //if else month is 4 and day is 30, day is 1 and increment month by 1
{day = 1;
month = month +1;
}
else if (month == 5 && day == 31)
{ day = 1;
month = month + 1;
}
else if (month ==6 && day == 30)
{day = 1;
month = month + 1;
}
else if (month == 7 && day == 31)
{day = 1;
month = month + 1;
}
else if (month == 8 && day == 31)
{ day = 1;
month = month + 1;
}
else if (month == 9 && day == 30)
{ day = 1;
month = month + 1;
}
else if (month == 10 && day == 31)
{day = 1;
month = month + 1;
}
else if (month == 11 && day == 30)
{ day = 1;
month = month + 1;
}
else if(month == 12 && day == 31)
{ day = 1;
month = 1;
year = year + 1;
}
else{
day = day + 1;
}
}
public static void main(String[]args){
System.out.println("Enter the month: ");
Scanner scan = new Scanner(System.in);
int month = scan.nextInt();
System.out.println("Enter the day: ");
int day = scan.nextInt();
System.out.println("Enter the year: ");
int year = scan.nextInt();
IncDate i = new IncDate(month, day, year);
System.out.println("The date is: " + i.toString());
i.increment();
System.out.println("Tomorrow's date is: "+ i.toString());
System.out.println("Enter number of days to add to tomorrow's date: ");
int n =scan.nextInt();
for (int j = 0; j<n; j++){
i.increment();
}
System.out.println(i.toString());
}
}
package dates;
public class Date {
protected int year;
protected int month;
protected int day;
public static final int MINYEAR = 1583;
public int numDays = 0;
//Constructor
public Date(int newMonth, int newDay, int newYear)
{
month = newMonth;
day = newDay;
year = newYear;
}
//Observers
public int getYear()
{
return year;
}
public int getMonth()
{
return month;
}
public int getDay()
{
return day;
}
public static boolean isLeapYear(int y){
if(y%4 != 0) return false;
return (y%100 !=0)||(y%400 == 0);
}
public String toString()
{
return (month + "/" + day + "/" + year);
}
}
Explanation / Answer
import java.util.Scanner; public class date { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stubScanner scan =new Scanner(System.in); int year; int month; int day; Scanner scan=new Scanner(System.in); System.out.println("enter year"); year = scan.nextInt(); System.out.println("enter month"); month = scan.nextInt(); System.out.println("enter day"); day = scan.nextInt(); int Days; System.out.println("enter days"); Days = scan.nextInt(); if (year % 400 == 0 || (year / 4 == 0 & year / 100 != 0)) { int m=1; switch (m) { case 1: if ((day + Days) 0) { month=month+1; } } break; } else if (((day + Days) > 31) & ((day + Days) 12) { month=month-12; year=year+1; } day =day+Days - 31; break; } else if (((day + Days) > 60) & ((day + Days) 12) { month=month-12; year=year+1; } day =day+Days - 60; break; } else if(((day + Days)>91)&((day + Days)12) { month=month-12; year=year+1; } day=day+Days-91; break; } else if(((day + Days)>122)&((day + Days)12) { month=month-12; year=year+1; } day=day+Days-122; break; } else if(((day + Days)>152)&((day + Days)12) { month=month-12; year=year+1; } day=day+Days-152; break; } else if(((day + Days)>183)&((day + Days)12) { month=month-12; year=year+1; } day=day+Days-183; break; }else if(((day + Days)>213)&((day + Days)12) { month=month-12; year=year+1; } day=day+Days-213; break; } else if(((day + Days)>244)&((day + Days)12) { month=month-12; year=year+1; } day=day+Days-244; break; } else if(((day + Days)>275)&((day + Days)12) { month=month-12; } day=day+Days-274; break; } else if(((day + Days)>305)&((day + Days)12) { month=month-12; } day=day+Days-304; break; } else if(((day + Days)>335)&((day + Days)12) { month=month-12; year=year+1; } day=day+Days-334; break; } } } else { switch (2) { case 2: if ((day + Days) 0) { month=month+1; } } break; } else if (((day + Days) > 31) & ((day + Days) 12) { month=month-12; year=year+1; } if(i!=1) day = day+Days - 31; break; } else if (((day + Days) > 59) & ((day + Days) 12) { month=month-12; year=year+1; } day =day+ Days - 59; break; } else if(((day + Days)>90)&((day + Days)12) { month=month-12; year=year+1; } day=day+Days-90; break; } else if(((day + Days)>121)&((day + Days)12) { month=month-12; year=year+1; } day=day+Days-121; break; } else if(((day + Days)>151)&((day + Days)12) { month=month-12; year=year+1; } day=day+Days-152; break; } else if(((day + Days)>182)&((day + Days)12) { month=month-12; year=year+1; } day=day+Days-182; break; }else if(((day + Days)>212)&((day + Days)12) { month=month-12; year=year+1; } day=day+Days-212; break; } else if(((day + Days)>243)&((day + Days)12) { month=month-12; year=year+1; } day=day+Days-243; break; } else if(((day + Days)>274)&((day + Days)12) { month=month-12; year=year+1; } day=day+Days-274; break; } else if(((day + Days)>304)&((day + Days)12) { month=month-12; year=year+1; } day=day+Days-304; break; } else if(((day + Days)>334)&((day + Days)12) { month=month-12; year=year+1; } day=day+Days-334; break; } } } System.out.println("output"+year+"."+month+"."+day); } }Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.