Java-获取星期几

问题描述 投票:-1回答:1

我有一个ArrayList,其中包含一周中的每一天。该函数有两个参数:星期几和一个整数值,用于增加天数。

例如,如果当前日期为星期一,整数值为3,则应返回星期三。

它还需要能够“循环”,所以如果当前日期是星期天,值是2,则应该返回星期二。

下面是我到目前为止的内容,它仅返回currentDay。我对Java真的很陌生,所以任何帮助都会很棒。

import java.util.ArrayList;

public class DaysOfWeek {

    public static void main(String[] args) {
        System.out.println(calcDay("Tue", 2));
    }

    public static String calcDay(String currentDay, int incrementDays) {

        ArrayList<String> days = new ArrayList<String>();

        days.add(0,"mon");
        days.add(1,"tue");
        days.add(2,"wed");
        days.add(3,"thu");
        days.add(4,"fri");
        days.add(5,"sat");
        days.add(6,"sun");

        if((days.contains(currentDay.toLowerCase())) && ((incrementDays >= 0) && (incrementDays <= 500))) {

           for(int i = days.indexOf(currentDay.toLowerCase()); i < incrementDays+1; i++) {
                String newDay = days.get(i);
                return newDay;
            }
        } return "Invalid";
    }
}
java
1个回答
0
投票

您可以简单地使用模运算符。

 public static String calcDay(String currentDay, int incrementDays) {

    ArrayList<String> days = new ArrayList<String>();

    days.add(0,"mon");
    days.add(1,"tue");
    days.add(2,"wed");
    days.add(3,"thu");
    days.add(4,"fri");
    days.add(5,"sat");
    days.add(6,"sun");

    int currentIndex = days.indexOf(currentDay.toLowerCase());
    int newDayIndex = (currentIndex + incrementDays) % 7;
    return days.get(newDayIndex);
}

0
投票

嗯,您可以将String newDay = days.get(i);更改为:

String newDay = days.get((i+incrementDays) % 7);

这会循环到一周的开始。您传入了增量,但忘记了使用它。 :)

© www.soinside.com 2019 - 2024. All rights reserved.