一台再正常不过的已经配置了java环境的电脑
一款适合自己的开发集成环境,笔者自己用的是eclipse Kepler
活跃的大脑,勤劳的双手
第一个要考虑的问题,如何判断月份。我们会用一个switch语句区分大小月:一三五七八十腊,三十一天永不差。剩下的除了二月份需要判断平闰年之外都是三十天。如图:
第二要考虑的问题,就是怎么判断平闰年。一个年份数可以被100整除的话,如果同时也可以被4整除才是闰年,否则的话ta是平年。一个年份数不能被100整除的话,如果ta此时可以被4整除也是闰年,否则的话ta是平年。如图:
获取输入参数,这里用Scanner类的非静态nextInt()方法。Scanner sc = new Scanner(System.in);int number = sc.nextInt();
但是,如果输入的是字母,或者位数不足,不符合YYYYMM格式,那不就麻烦了?所以,我们还需要加以判断。这里就不能直接从scanner里面获取数字了,我们要获取的是字符串,Scanner sc = new Scanner(System.in);String str = sc.nextLine();然后用正则表达式判断一下。if (!str.matches('^[1-9]{1}[0-9]{5}$')) { System.out.println('Not an integer number! Input again:');}
上一步骤中的正则我们偷了一点儿小懒,是为了让大家更容易理解。所以,这里我们还缺少对月份的判断。很简单,如图:
最后,我们写一个main方法测试一下,看看是否是咱预期的效果。String number = scannerNumber(); int year = Integer.parseInt(number.substring(0, 4)); int month = Integer.parseInt(number.substring(4));System.out.println('this is month has ' + daysOfThisMonth(year, month));
注意总结,温故知新嘛!不要玩一玩就过去了。也别变成和笔者一样的呆子哦~~
耐心,认真,仔细,严谨。