Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

Need to make a Java program which calculates the number of days between two date

ID: 3797642 • Letter: N

Question

Need to make a Java program which calculates the number of days between two dates. I am NOT able to use anything too advanced yet such as import.java.util.Calender, import.java.util.Date; or import.java.util.GregorianCalender; Here are a couple of examples of what is should look like when complete. I am having troubles getting my calculations to come out correctly. I’ve also written the code I have so far.   

EXAMPLE

“Enter first date now:

Enter Month: 1

Enter Day: 1

Enter Year: 1900

Enter the second date:

Enter Month: 1

Enter Day: 1

Enter Year: 2400

The first date is: 1/1/1900

The other date is: 1/1/2400

The total number of days between the dates is 182621”

AND

“Enter first date now:

Enter Month: 2

Enter Day: 23

Enter Year: 2016

Enter the second date:

Enter Month: 11

Enter Day: 30

Enter Year: 1955

The first date is: 2/23/2016

The other date is: 11/30/1955

The total number of days between the dates is 22000”

Here is what I have so far:

Import java.util.Scanner;

Public class dates {

Public static void main ( String args [] ) {

int monthOne;

int monthTwo;

int dayOne;

int dayTwo;

intyearOne;

intyearTwo;

Scanner get = new Scanner (System.in );

System.out.println ( “Enter first date now: “ );

do {

System.out.print ( “Enter Month: “);

monthOne = get.nextInt();

System.out.print ( “Enter Day: “ );

dayOne = get.nextInt();

System.out.print ( “Enter Year : “ );

yearOne = get.nextInt();

if (monthOne < 1 || monthOne > 12 ) {

System.out.printf ( “%d is not a valid month ”, monthOne ); }

If ( (!(yearOne % 4 == 0 && yearOne & 100 !=0 || yearOne % 400 == 0) && (monthOne == 2 && dayOne >= 29)) || ((yearOne % 4 == 0 && yearOne % 100 != 0 || yearOne % 400 == 0) && (monthOne == 2 && dayOne >= 30))) {

System.out.printf ( “%d is not a valid day. ”, dayOne ); }

If ( (monthOne == 4 && dayOne > 30) || (monthOne ==6 && dayOne > 30) || (monthOne == 9 && dayOne > 30) || (monthOne == 11 && dayOne > 30) || (dayOne < 1 || dayOne > 31)) {

System.out.printf ( “%d is not a valid day. ”, dayOne );

If ( yearOne < 1900 || yearOne > 2400 ) {

System.out.printf ( “%d is not a valid year. ”, yearOne ); }

} while (( (!(yearOne % 4 == 0 && yearOne % 100 !=0 || yearOne % 400 == 0) && (monthOne == 2 && dayOne >= 29)) || ((yearOne % 4 == 0 && yearOne % 100 != 0 || yearOne % 400 == 0) && (monthOne == 2 && dayOne >= 30 )) || (monthOne == 4 && dayOne > 30) || (monthOne == 6 && dayOne > 30) || (monthOne == 9 && dayOne > 30) || (monthOne == 11 && dayOne > 30) || (monthOne < 1 || monthOne > 12) || (dayOne < 1 || dayOne > 31) || (yearOne < 1900 || yearOne > 2400) ));

System.out.printf ( “ Enter the second date: ” );

do {

System.out.print ( “Enter Month: “);

monthTwo = get.nextInt();

System.out.print ( “Enter Day: “ );

dayTwo = get.nextInt();

System.out.print ( “Enter Year : “ );

yearTwo = get.nextInt();

if (monthTwo < 1 || monthTwo > 12 ) {

System.out.printf ( “%d is not a valid month ”, monthTwo ); }

If ( (!(yearTwo % 4 == 0 && yearTwo & 100 !=0 || yearTwo % 400 == 0) && (monthTwo == 2 && dayTwo >= 29)) || ((yearTwo % 4 == 0 && yearTwo % 100 != 0 || yearTwo % 400 == 0) && (monthTwo == 2 && dayTwo >= 30))) {

System.out.printf ( “%d is not a valid day. ”, dayTwo ); }

If ( (monthTwo == 4 && dayTwo > 30) || (monthTwo ==6 && dayTwo > 30) || (monthTwo == 9 && dayTwo > 30) || (monthTwo == 11 && dayTwo > 30) || (dayTwo < 1 || dayTwo > 31)) {

System.out.printf ( “%d is not a valid day. ”, dayTwo );

If ( yearTwo < 1900 || yearTwo > 2400 ) {

System.out.printf ( “%d is not a valid year. ”, yearTwo ); }

} while (( (!(yearTwo % 4 == 0 && yearTwo % 100 !=0 || yearTwo % 400 == 0) && (monthTwo == 2 && dayTwo >= 29)) || ((yearTwo % 4 == 0 && yearTwo % 100 != 0 || yearTwo % 400 == 0) && (monthTwo == 2 && dayTwo >= 30 )) || (monthTwo == 4 && dayTwo > 30) || (monthTwo == 6 && dayTwo > 30) || (monthTwo == 9 && dayTwo > 30) || (monthTwo == 11 && dayTwo > 30) || (monthTwo < 1 || monthTwo > 12) || (dayTwo < 1 || dayTwo > 31) || (yearTwo < 1900 || yearTwo > 2400) ));

System.out.printf ( “ The first date is: %d/%d/%d ”, monthOne, dayOne, yearOne );

System.out.printf ( “ The other date is: %d/%d/%d ”, monthTwo, dayTwo, yearTwo );

int totalDayOne = 0;

int numDaysJan = dayOne;

int numDaysFeb = 31 + dayOne;

int numDaysMar = 31 + 28 + dayOne;

int numDaysApr = 31 + 28 + 31 + dayOne;

int numDaysMay = 31 + 28 + 31 + 30 + dayOne;

int numDaysJun = 31 + 28 + 31 + 30 + 31 + dayOne;

int numDaysJul = 31 + 28 + 31 + 30 + 31 + 30 + dayOne;

int numDaysAug = 31 + 28 + 31 + 30 + 31 + 30 + 31 + dayOne;

int numDaysSep = 31 + 28 + 31 + 30 + 31 + 30 + 31 + 31 + dayOne;

int numDaysOct = 31 + 28 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + dayOne;

int numDaysNov = 31 + 28 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31 + dayOne;

int numDaysDec = 31 + 28 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31 + 30 + dayOne;

int totalDayTwo = 0;

int numDaysJanTwo = dayTwo;

int numDaysFebTwo = 31 + dayTwo;

int numDaysMarTwo = 31 + 28 + dayTwo;

int numDaysAprTwo = 31 + 28 + 31 + dayTwo;

int numDaysMayTwo = 31 + 28 + 31 + 30 + dayTwo;

int numDaysJunTwo = 31 + 28 + 31 + 30 + 31 + dayTwo;

int numDaysJulTwo = 31 + 28 + 31 + 30 + 31 + 30 + dayTwo;

int numDaysAugTwo = 31 + 28 + 31 + 30 + 31 + 30 + 31 + dayTwo;

int numDaysSepTwo = 31 + 28 + 31 + 30 + 31 + 30 + 31 + 31 + dayTwo;

int numDaysOctTwo = 31 + 28 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + dayTwo;

int numDaysNovTwo = 31 + 28 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31 + dayTwo;

int numDaysDecTwo = 31 + 28 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31 + 30 + dayTwo;

if ( monthOne == 1 ) {

totalDayOne += numDaysJan;

}

if ( monthOne == 2 ) {

totalDayOne += numDaysFeb;

}

if ( monthOne == 3 ) {

totalDayOne += numDaysMar;

}

if ( monthOne == 4 ) {

totalDayOne += numDaysApr;

}

If ( monthOne == 5 ) {

totalDayOne += numDaysMay;

}

if (monthOne == 6 ) {

totalDayOne += numDaysJun;

}

if ( monthOne == 7 ) {

totalDayOne += numDaysJul;

}

if ( monthOne == 8 ) {

totalDayOne += numDaysAug;

}

if ( monthOne == 9 ) {

totalDayOne += numDaysSep;

}

if ( monthOne == 10 ) {

totalDayOne += numDaysOct;

}

if (monthOne == 11 ) {

totalDayOne += numDaysNov;

}

if (monthOne == 12 ) {

totalDayOne += numDaysDec;

}

if ( monthTwo == 1 ) {

totalDayTwo += numDaysJanTwo;

}

if ( monthTwo == 2 ) {

totalDayTwo += numDaysFebTwo;

}

if ( monthTwo == 3 ) {

totalDayTwo += numDaysMarTwo;

}

if ( monthTwo == 4 ) {

totalDayTwo += numDaysAprTwo;

}

If ( monthTwo == 5 ) {

totalDayTwo += numDaysMayTwo;

}

if (monthTwo == 6 ) {

totalDayTwo += numDaysJunTwo;

}

if ( monthTwo == 7 ) {

totalDayTwo += numDaysJulTwo;

}

if ( monthTwo == 8 ) {

totalDayTwo += numDaysAugTwo;

}

if ( monthTwo == 9 ) {

totalDayTwo += numDaysSepTwo;

}

if ( monthTwo == 10 ) {

totalDayTwo += numDaysOctTwo;

}

if (monthTwo == 11 ) {

totalDayTwo += numDaysNovTwo;

}

if (monthTwo == 12 ) {

totalDayTwo += numDaysDecTwo;

}

int daysBetween = totalDayOne – totalDayTwo;

if ( totalDayOne < totalDayTwo ) {

daysBetween = totalDayTwo – totalDayOne;

}

int daysTotal = 0;

while ( yearOne < yearTwo ) {

yearOne++;

if ( yearOne % 4 == 0 && yearOne % 100 != 0 || yearOne % 400 == 0)

daysTotal += 366;

else

daysTotal += 365;

}

while ( yearTwo < yearOne ) {

yearTwo++;

if ( yearTwo % 4 == 0 && yearTwo % 100 != 0 || yearTwo % 400 == 0)

daysTotal += 366;

else

daysTotal += 365;

}

System.out.printf ( “ The total number of days between the dates is %d ”, daysTotal + daysBetween);

}

}

Explanation / Answer

import java.util.Calendar;

import java.util.Date;

import java.util.Scanner;

public class NewDateDifference {

public static void main(String[] args) {

System.out.print("Insert first date : ");

Scanner s = new Scanner(System.in);

String[] eingabe1 = new String[3];

while (s.hasNext()) {

int i = 0;

insert1[i] = s.next();

if (!s.hasNext()) {

s.close();

break;

}

i++;

}

System.out.print("Insert second date : ");

Scanner t = new Scanner(System.in);

String[] insert2 = new String[3];

while (t.hasNext()) {

int i = 0;

insert2[i] = t.next();

if (!t.hasNext()) {

t.close();

break;

}

i++;

}

Calendar cal = Calendar.getInstance();

cal.set(Calendar.DAY_OF_MONTH, Integer.parseInt(insert1[0]));

cal.set(Calendar.MONTH, Integer.parseInt(insert1[1]));

cal.set(Calendar.YEAR, Integer.parseInt(insert1[2]));

Date firstDate = cal.getTime();

cal.set(Calendar.DAY_OF_MONTH, Integer.parseInt(insert2[0]));

cal.set(Calendar.MONTH, Integer.parseInt(insert2[1]));

cal.set(Calendar.YEAR, Integer.parseInt(insert2[2]));

Date secondDate = cal.getTime();

long diff = secondDate.getTime() - firstDate.getTime();

System.out.println ("Days: " + diff / 1000 / 60 / 60 / 24);

}

}

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote