【发布时间】:2020-01-11 05:06:47
【问题描述】:
我正在开发一种方法,该方法返回对应于一年中第一天的星期几的整数。 Int 0 是星期日,1 是星期一,2 是星期二,3 是星期三... 6 是星期六。方法头如下:
private static int firstDayOfYear (int year)
{
}
我的起点是 2020 年,第一天是 2020 年 1 月 1 日的星期三。因此,2019 年将从星期二开始,2018 年将从星期一开始。 2021 年将于周四开始,2022 年将于周五开始。
目前,我已经在方法中创建了这段代码。它有效,但感觉很笨拙,我觉得有一种非常有效的方法可以解决这个问题。现在,我的代码计算距星期三的距离并使用它来定位星期几:
int difference = year - 2020;
int distance = difference % 7;
if (distance == -6)
return 4;
if (distance == -5)
return 5;
if (distance == -4)
return 6;
if (distance == -3)
return 0;
if (distance == -2)
return 1;
if (distance == -1)
return 2;
if (distance == 0)
return 3;
if (distance == 1)
return 4;
if (distance == 2)
return 5;
if (distance == 3)
return 6;
if (distance == 4)
return 0;
if (distance == 5)
return 1;
else
return 2;
如果您对如何简化或压缩此代码有任何建议,我将不胜感激。
【问题讨论】:
标签: java