0
我試圖讓這個程序在每行上每次連續讀出日期1/1到12/31。到目前爲止,我已經成功地打印了1/1到1/31,但是我失去了如何繼續我的循環,以便包括剩餘的月/日。我知道有一種更簡單的方法來使用日曆來做到這一點,但我正在避免這種路線。使用開關語句變量繼續循環
public class LoopDate {
public static void main(String[] args) {
int startingDayOfWeek = 2;
boolean isLeapYear = false;
int month = 1;
int year = 2000;
int numDays = 0;
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 start = 1;
do {
System.out.println(month + "/" + start);
start++;
} while (start <= numDays);
}
}
謝謝,這完全按照我的計劃工作。你是否也知道如何從這些打印輸出中排除某些日期。比如,如果我想排除一年中的某些日子?等等:1/1 1/2 1/4 1/5..etc – user2057847 2013-02-11 03:48:53
添加一個'if(month == someNumber && start == someDay)continue;'到最後一個for循環(您需要打開和關閉大括號所以你不會失去println調用)。如果您想排除多天,請使用此數組。 – Montycarlo 2013-02-11 03:53:11
我試圖從列表中排除所有「星期五第13次」日期,無論哪一年輸入年份變量。這就是爲什麼我有「startingDayOfWeek」變量跟蹤星期五基於硬編碼的一年的第一天。我試圖跟蹤星期五和開始,所以如果他們最終在星期五和13它會跳過打印。這可能嗎? – user2057847 2013-02-11 03:59:55