naman1601

Get the number of days between 2 dates.

Aug 11th, 2016
618
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.78 KB | None | 0 0
  1. import java.util.Scanner;
  2. public class HelloWorld {
  3.     public static void main(String args[]) {
  4.         Scanner s = new Scanner(System.in);
  5.         System.out.print("Enter starting date separated by dots: ");
  6.         String inp1 = s.nextLine();
  7.         System.out.print("Enter ending date separated by dots: ");
  8.         String inp2 = s.nextLine();
  9.         int[] nodim = {
  10.             0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31
  11.         };
  12.         String[] inpArr1 = split(inp1);
  13.         String[] inpArr2 = split(inp2);
  14.         int d1 = Integer.parseInt(inpArr1[0]);
  15.         int m1 = Integer.parseInt(inpArr1[1]);
  16.         int y1 = Integer.parseInt(inpArr1[2]);
  17.         int d2 = Integer.parseInt(inpArr2[0]);
  18.         int m2 = Integer.parseInt(inpArr2[1]);
  19.         int y2 = Integer.parseInt(inpArr2[2]);
  20.         if (y1 % 4 == 0) nodim[2] = 29;
  21.         int diff = m1 == m2 && y1 == y2 ? d2 - d1 : (nodim[m1] - d1) + d2;
  22.         int mm1 = m1 + 1, mm2 = m2 - 1, yy1 = y1, yy2 = y2;
  23.         for (; yy1 <= yy2; yy1++, mm1 = 1) {
  24.             mm2 = yy1 == yy2 ? (m2 - 1) : 12;
  25.             if (yy1 % 4 == 0) nodim[2] = 29;
  26.             else nodim[2] = 28;
  27.             if (mm2 == 0) {
  28.                 mm2 = 12;
  29.                 yy2 = yy2 - 1;
  30.             }
  31.             for (; mm1 <= mm2 && yy1 <= yy2; mm1++) diff = diff + nodim[mm1];
  32.         }
  33.         System.out.print("No. of days from " + inp1 + " to " + inp2 + " is " + diff);
  34.     }
  35.     public static String[] split(String s) {
  36.         String[] retval = {
  37.             "", "", ""
  38.         };
  39.         s = s + ".";
  40.         s = s + " ";
  41.         for (int i = 0; i <= 2; i++) {
  42.             retval[i] = s.substring(0, s.indexOf("."));
  43.             s = s.substring((s.indexOf(".") + 1), s.length());
  44.         }
  45.         return retval;
  46.     }
  47. }
Add Comment
Please, Sign In to add comment