【问题标题】:Find day from String array based on iteration using Java使用Java基于迭代从字符串数组中查找日期
【发布时间】:2020-12-27 12:24:31
【问题描述】:

我有我的字符串数组和输入如下

S = "Tue" and K = 23

        String[] daysOfWeek = {"Mon","Tue","Wed","Thu","Fri","Sat","Sun"};

我的输入是“星期二”,并在 10 天后找到第二天。我期待答案为“星期五”

这是我的代码

        String[] daysOfWeek = {"Mon","Tue","Wed","Thu","Fri","Sat","Sun"};
    int day = Arrays.asList(daysOfWeek).indexOf(S);
    int n = K % 7;
    if((day + n) > 6) {
        int index = (day + n) % 6;
        //return daysOfWeek[ ];

    } else {
        return daysOfWeek[day + n ];

    }
    return null;

任何想法

【问题讨论】:

  • 也许您应该发布您尝试过的代码。
  • @MarsAtomic,用代码更新
  • 什么是K?...
  • 你需要使用int index = (day + n) % 7;
  • 您的代码有效吗?如果不是,它以何种方式行为不端?你得到什么结果而不是Fri

标签: java dayofweek


【解决方案1】:

您可以使用java.time.DayOfWeek 而不是重新发明轮子。

例如:

DayOfWeek dayOfWeek = DayOfWeek.TUESDAY;
DayOfWeek dayOfWeek1 = dayOfWeek.plus(10);
System.out.println(dayOfWeek1); // FRIDAY

【讨论】:

    【解决方案2】:

    要简单!

    private static final String[] DAYS_OF_WEEK = { "Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun" };
    private static final Map<String, Integer> MAP = Map.of(DAYS_OF_WEEK[0], 0, DAYS_OF_WEEK[1], 1,
            DAYS_OF_WEEK[2], 2, DAYS_OF_WEEK[3], 3, DAYS_OF_WEEK[4], 4, DAYS_OF_WEEK[5], 5, DAYS_OF_WEEK[6], 6);
    
    public static String find(String dayOfWeek, int days) {
        return DAYS_OF_WEEK[(MAP.get(dayOfWeek) + days) % 7];    // NPE if not found
    }
    

    【讨论】:

      【解决方案3】:

      你可以对之后的天数做模7,然后你可以根据输出找到将索引从起始位置移动到结果。

      【讨论】:

        【解决方案4】:

        混合方法 -

        String[] daysOfWeek = {"Mon","Tue","Wed","Thu","Fri","Sat","Sun"};
        int today = LocalDate.now().getDayOfWeek().getValue()-1;
        for (int i = 0; i < 31; i++) {
            System.out.println(daysOfWeek[today] + " >>>     " + i + "  - " + daysOfWeek[(today+i)%7]);
        }
        

        【讨论】:

          猜你喜欢
          • 2014-02-07
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2019-03-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多