可能大家在面试中会遇到中国式传统问题,:)由于大家不记得这些问题的规律而丢分,太可惜了。
今天分享一个有于leap year的问题,其实有个口诀,特别好使:四年一闰,百年不闰,四百年再闰。大家记好这个,以后就可以轻松应对了,其实不难。
下面给一个我写的例子,可能不是最好,但思路很简单,呵呵。简约为美吧。同时,给出一个java对象实例过程的例子。初学都可以多留意下,面试中经常遇到。LOL
package myitem; import java.io.Console; import java.util.HashMap; import java.util.Map; import java.util.Scanner; class A{ { System.out.println("Aa"); } A(){ System.out.println("Ab"); } } /** * @author hill * */ public class LeapYear extends A{ private int year; private int month; private int day; private static Map dayMap; { System.out.println("a"); } static{ System.out.println("b"); dayMap = new HashMap(); dayMap.put("1", "31"); } LeapYear(){ System.out.println("c"); } public int days(int year,int month,int day){ int days =0; boolean isLeap = false; if((year%4==0&&year%100!=0) || year%400==0){ isLeap = true; } for(int i=1; i<=month-1;i++){ switch(i){ case 1: days+=31; break; case 2: if(isLeap){ days+=29; }else{ days+=28; } break; case 3: days+=31; break; case 4: days+=30; break; case 5: days+=31; break; case 6: days+=30; break; case 7: days+=31; break; case 8: days+=31; break; case 9: days+=30; break; case 10: days+=31; break; case 11: days+=30; break; case 12: days+=31; break; } } days = days + day; return days; } @SuppressWarnings("unused") private static String readDataFromConsole(String prompt) { Scanner scanner = new Scanner(System.in); System.out.print(prompt); return scanner.nextLine(); } public static void main(String[] args) { // Console console = System.console(); String param = readDataFromConsole("Please Enter:"); System.out.println(param); String[] paramStr=param.split("-"); String year=paramStr[0]; String month=paramStr[1]; String day=paramStr[2]; // if(console!=null){ // year = console.readLine("Enter Year:"); // month = console.readLine("Enter Month:"); // day = console.readLine("Enter Day:"); LeapYear leapYear = new LeapYear(); int days = leapYear.days(Integer.parseInt(year),Integer.parseInt(month), Integer.parseInt(day)); System.out.println(String.valueOf(days)); // } } }