CCF試題日期計算-Java
阿新 • • 發佈:2018-12-16
問題描述 給定一個年份y和一個整數d,問這一年的第d天是幾月幾日? 注意閏年的2月有29天。滿足下面條件之一的是閏年: 1) 年份是4的整數倍,而且不是100的整數倍; 2) 年份是400的整數倍。 輸入格式 輸入的第一行包含一個整數y,表示年份,年份在1900到2015之間(包含1900和2015)。 輸入的第二行包含一個整數d,d在1至365之間。 輸出格式 輸出兩行,每行一個整數,分別表示答案的月份和日期。 樣例輸入 2015 80 樣例輸出 3 21 樣例輸入 2000 40 樣例輸出 2 9 import java.util.Scanner; public class DateCompute { static Scanner sc; static int year; static int day; static int[] monthping = {0,31,28,31,30,31,30,31,31,30,31,30,31}; static int[] monthlun = {0,31,29,31,30,31,30,31,31,30,31,30,31}; public static void main(String[] args) { sc = new Scanner(System.in); year = sc.nextInt(); day = sc.nextInt(); deal(year,day); } public static void deal(int year,int day) { int sum=0; if(((year%4==0)&&(year%100!=0))||(year%400==0)) { //表示是閏年 for(int i=1;i<monthlun.length;i++) { sum+=monthlun[i]; if(sum>=day) { //表示在第i個月 System.out.println(i); System.out.print(day-sum+monthlun[i]); break; } } } else { //表示是平年 for(int i=1;i<monthping.length;i++) { sum+=monthping[i]; if(sum>=day) { //表示在第i個月 System.out.println(i); System.out.print(day-sum+monthping[i]); break; } } } } }