本帖最后由 小黑子 于 2014-8-24 16:05 编辑
问题1:我第一次建立String类型数组是用的86、87行代码:
//String[] week = new String[7];
//week[7] = {"星期日","星期一","星期二","星期三","星期四","星期五","星期六"};
因为编译不通过,所以注释掉了。运行结果如:图1
可是我想知道为什么错了,应该怎么改?
问题2:然后我用新的语句,88行代码建立了String类型数组,编译后,截图如:图2
请问,这两个error该怎么改?:'(
- /*
- 需求:输入一个时期,可以判断出是星期几
- 思想:设置一个初始日期,包括年,月,日,星期。如,2001-1-1 星期6
- 求出初始日期与当前日期的天数差值,然后再计算当前星期
- */
- class Date
- {
- int year;
- int month;
- int day;
- int week;
- Date(int year,int month,int day)
- {
- this.year = year;
- this.month = month;
- this.day = day;
- }
- Date(int year,int month,int day,int week)
- {
- Date(year,month,day);
- this.week = week;
- }
- void printDate()
- {
- System.out.print(this.year+"-"+this.month+"-"+this.day);
- }
- }
- class LeapYear
- {
- //判断是否是闰年
- public boolean isLeapYear(int year)
- {
- if(year%400==0 || year%100!=0 && year%4==0)
- return true;
- else
- return false;
- }
- }
- class HowManyDays
- {
- //2000年1月1日是周六
- public final static Date startDate = new Date(2000,1,1,6);
- int sumDays = 0;
- //计算初始值与当前日期相差天数
- public int getDays(Date endDate)
- {
- //计算相差整年的天数(即去年12月31日与2000.1.1之间共多少天)
- for(int i=startDate.year;i<endDate.year;i++)
- {
- sumDays = sumDays+(new LeapYear().isLeapYear(i) ? 366 : 365);
- }
- //计算相差整月的天数
- switch(endDate.month-1)
- {
- case 11: sumDays+=30;
- case 10: sumDays+=31;
- case 9 : sumDays+=30;
- case 8 : sumDays+=31;
- case 7 : sumDays+=31;
- case 6 : sumDays+=30;
- case 5 : sumDays+=31;
- case 4 : sumDays+=30;
- case 3 : sumDays = sumDays+(new LeapYear().isLeapYear(endDate.year) ? 29:28);
- case 2 : sumDays+=30;
- case 1 : sumDays+=31;
- }
- //计算相差的零散天数
- sumDays+=endDate.day;
- return sumDays;
- }
- }
- class WhichWeek
- {
- public String getWeek(Date endDate)
- {
- int sumDays = new HowManyDays().getDays(endDate);
- int path;//补丁
- path = startDate.week-1;//path+sumDays,模7后余几就是星期几,余0就是星期日。
- int wk = (path+sumDays)%7;//作为数组下标
- //String[] week = new String[7];
- //week[7] = {"星期日","星期一","星期二","星期三","星期四","星期五","星期六"};
- String[] week = {"星期日","星期一","星期二","星期三","星期四","星期五","星期六"};
- return week[wk];
- }
- }
- class Excise314
- {
- public static void main(String[] args)
- {
- Date endDate = new Date(2000,1,1);
- String week = new WhichWeek().getWeek(endDate);
- endDate.printDate();
- System.out.println(": "+week);
- }
- }
复制代码
|
-
图1.png
(73.54 KB, 下载次数: 25)
图1
-
图2.png
(22.53 KB, 下载次数: 36)
图2
|