-4
我幾乎完成了我的代碼;然而,並非僅僅取消週五的日期,而且恰巧是該月的第13天,它已經每十三次提交一次。我認爲:使用開關語句從Java中僅消除某些日期
int friday = ((startingDayOfWeek+dayOfYear) % 7);
if (dayOfYear != 13 && friday != 5)
System.out.println(month + "/" + dayOfYear);
dayOfYear++;
會工作,但它是消除所有。我明白,有更簡單的方法來完成這一點;但是,我需要這樣做。以下是完整的代碼:
public class LoopDate {
public static void main(String[] args) {
//Denotes that Tuesday is the first day of 2013
int startingDayOfWeek = 2;
int year = 2013;
int numDays = 0;
for (int month = 1; month <= 12; month++) {
switch (month) {
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
numDays = 31;
break;
case 4:
case 6:
case 9:
case 11:
numDays = 30;
break;
case 2:
if (((year % 4 == 0) && !(year % 100 == 0))
|| (year % 400 == 0))
numDays = 29;
else
numDays = 28;
break;
default:
System.out.println("Invalid month.");
break;
}
int dayOfYear = 1;
while (dayOfYear <= numDays)
{
int friday = ((startingDayOfWeek+dayOfYear) % 7);
if (dayOfYear != 13 && friday != 5)
System.out.println(month + "/" + dayOfYear);
dayOfYear++;
}
}
}
}
在前面的問題中,人們給了我代碼,我無法在這種情況下使用。它的目的是長時間蜿蜒,而不是一條簡單的路線,所以我沒有真正收到有關我正在努力完成的事情的很多建議。 – user2057847 2013-02-11 07:02:48
我認爲這很明顯,爲什麼我會用一段代碼來把整個事情重寫成4行? – user2057847 2013-02-11 07:07:12
我最終通過設置中斷點並逐步完成修復。我想我可以在這裏更容易地得到答案。也許還有一次。 – user2057847 2013-02-11 10:06:10