Excluding Dates from Print Loop

拟墨画扇 提交于 2020-01-25 10:29:05

问题


How would I go about excluding any day from my print outs that was a friday and the 13th day of the month. I'm attempting to write something along the lines of: if (dayofweek != 5 && dayofmonth != 13), then print. How could I implement that into the following code?

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;
        }
        for (int start = 1; start <= numDays; start++)
            System.out.println(month + "/" + start);


        }
    }
}

回答1:


try

    GregorianCalendar c = new GregorianCalendar(2013, 0, 1);
    while (c.get(Calendar.YEAR) == 2013) {
        if (!(c.get(Calendar.DAY_OF_MONTH) == 13 &&  c.get(Calendar.DAY_OF_WEEK) == Calendar.FRIDAY)) {
            System.out.println(c.getTime());
        }
        c.add(Calendar.DAY_OF_YEAR, 1);
    }



回答2:


Using joda time, you would just do:

DateTime today = new DateTime();
if (today.dayOfWeek().getAsText().equals("Friday")) { continue; }
if (today.dayOfMonth().get() == 13) { continue; }
// print here


来源:https://stackoverflow.com/questions/14806129/excluding-dates-from-print-loop

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!