// Program 45: Find the Past Date import java.util.*; class PastDate { static boolean leap(int y) { return y % 400 == 0 || (y % 4 == 0 && y % 100 != 0); } static int daysInMonth(int m, int y) { int[] days = {0,31,28,31,30,31,30,31,31,30,31,30,31}; if (m == 2 && leap(y)) { return 29; } return days[m]; } public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.print("Enter date (dd/mm/yyyy): "); String date = sc.nextLine(); String[] p = date.split("/"); int d = Integer.parseInt(p[0]); int m = Integer.parseInt(p[1]); int y = Integer.parseInt(p[2]); System.out.print("Days before: "); int n = sc.nextInt(); if (m < 1 || m > 12 || d < 1 || d > daysInMonth(m, y) || n < 0) { System.out.println("Invalid input"); return; } for (int i = 0; i < n; i++) { d--; if (d == 0) { m--; if (m == 0) { m = 12; y--; } d = daysInMonth(m, y); } } System.out.printf("Past date: %02d/%02d/%04d%n", d, m, y); } }