Programa para encontrar diferencias entre dos fechas en día, en java

En este caso, estamos implementando un programa Java que leerá (tener) dos fechas e imprimir sus diferencias en las fechas .

Dados dos días y tenemos que encontrar a sus diferencias en el número de días usando el programa Java.

En este programa, estamos leyendo las fechas del usuario (utilizando ‘BufferedReader’ class) y luego la validación de la pasada de moda, si las fechas son válidas, el programa va a encontrar e imprimir sus diferencias en el número de días .

Ejemplo:

    Input
Enter the first date in (dd/mm/yyyy) format: 12/12/2016
Enter the second date in (dd/mm/yyyy) format: 12/12/2017
Output
Days between 12/12/2016 and 12/12/2017 is : 365 days.

Programa

package IncludeHelp;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class ExCalculateDays
{
// create buffer class object.
static BufferedReader BR=new BufferedReader(new InputStreamReader(System.in));
int month[]={0,31,28,31,30,31,30,31,31,30,31,30,31};
//create function for checking Leap Year or not.
int isLeap(int y)
{
if((y%400==0) || ((y%100!=0)&&(y%4==0)))
return 29;
else
return 28;
}
// create function for checking date is valid or not.
boolean dateValidate(int d, int m, int y)
{
month[2]=isLeap(y);
if(m<0 || m>12 || d<0 || d>month[m] || y<0 || y>9999)
return false;
else
return true;
}
// this function calculate days between given dates.
int dayno(int d, int m, int y)
{
int dn=0;
month[2]=isLeap(y);
for(int i=1;i<m;i++)
{
dn=dn+month[i];
}
dn=dn+d;
for(int i=1;i<y;i++)
{
if(isLeap(i)==29)
dn=dn+366;
else
dn=dn+365;
}
return dn;
}
public static void main(String args[])throws IOException
{
ExCalculateDays CD=new ExCalculateDays();
// Enter the dates one by one.
System.out.print("Enter the first date in (dd/mm/yyyy) format: ");
String date1=BR.readLine().trim();
int p,q;
// calculate the days.
p=date1.indexOf("/");
int d1=Integer.parseInt(date1.substring(0,p));
//calculating the month
q=date1.lastIndexOf("/");
int m1=Integer.parseInt(date1.substring(p+1,q));
// calculating the year
int y1=Integer.parseInt(date1.substring(q+1));
System.out.print("Enter the second date in (dd/mm/yyyy) format: ");
String date2=BR.readLine().trim();
p=date2.indexOf("/");
int d2=Integer.parseInt(date2.substring(0,p));
q=date2.lastIndexOf("/");
int m2=Integer.parseInt(date2.substring(p+1,q));
int y2=Integer.parseInt(date2.substring(q+1));
// check for valid input of dates.
if(CD.dateValidate(d1,m1,y1)==true && CD.dateValidate(d2,m2,y2)==true)
{
int a=CD.dayno(d1,m1,y1);
int b=CD.dayno(d2,m2,y2);
// print the final result.
System.out.print("Days between " +date1+" " + " and " +date2+ " "+" is : " +Math.abs(a-b)+" days.");
}
else
// otherwise invalid input of dates.
System.out.println("Invalid Dates...");
}
}

salida

First run:
Enter the first date in (dd/mm/yyyy) format: 12/12/2016
Enter the second date in (dd/mm/yyyy) format: 12/12/2017
Days between 12/12/2016 and 12/12/2017 is : 365 days.
Second run:
Enter the first date in (dd/mm/yyyy) format: 12/2017/12
Enter the second date in (dd/mm/yyyy) format: 22/2017/12
Invalid Dates...


Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *