Java 按数字获取当天的名称
这可能是一个非常独特的问题,因为我在谷歌上搜索了一段时间&找不到解决方案。这也很有趣 基本上我需要的是一个数字,你可以通过它得到日期的名称 例如,我们的数字是7,我们需要通过一个公式来找出它的日期名称,但是对于7,它是基本的,您所做的只是在switch语句中得到“saturday” 基本上,获取名称很简单,您只需执行以下操作:Java 按数字获取当天的名称,java,formula,Java,Formula,这可能是一个非常独特的问题,因为我在谷歌上搜索了一段时间&找不到解决方案。这也很有趣 基本上我需要的是一个数字,你可以通过它得到日期的名称 例如,我们的数字是7,我们需要通过一个公式来找出它的日期名称,但是对于7,它是基本的,您所做的只是在switch语句中得到“saturday” 基本上,获取名称很简单,您只需执行以下操作: switch (dayNumber) { case 1: return "Sunday"; etc... 但我想我的问题相当复杂,我不确定逻辑上是否有可能的解决
switch (dayNumber) {
case 1: return "Sunday"; etc...
但我想我的问题相当复杂,我不确定逻辑上是否有可能的解决办法
我想通过数字得到本周的索引号
示例:
- 第7天-索引:7
- 第16天-指数:2(因为你计算前两周7+7=14,然后+2=16,所以这一天是星期一
- 第24天-索引:3
for (int i = 1; i <= 31; i++) {
System.out.println(getDayByInteger(i));
}
public static String getDayByInteger(int day) {
int dayNumber = 0; //TODO Formula..
switch (dayNumber) {
case 1:
return "Sunday";
case 2:
return "Monday";
case 3:
return "Tuesday";
case 4:
return "Wednesday";
case 5:
return "Thursday";
case 6:
return "Friday";
case 7:
return "Saturday";
default: return "N/A";
}
}
对于(int i=1;i您只需使用modulu并编辑您的案例:
switch (dayNumber%7) {
case 1:
return "Sunday";
case 2:
return "Monday";
case 3:
return "Tuesday";
case 4:
return "Wednesday";
case 5:
return "Thursday";
case 6:
return "Friday";
case 0: //change case 7 to case 0
return "Saturday";
default: return "N/A";
}
您只需使用modulu并编辑您的案例:
switch (dayNumber%7) {
case 1:
return "Sunday";
case 2:
return "Monday";
case 3:
return "Tuesday";
case 4:
return "Wednesday";
case 5:
return "Thursday";
case 6:
return "Friday";
case 0: //change case 7 to case 0
return "Saturday";
default: return "N/A";
}
您可以为此使用提醒运算符%
public static String getDayByInteger(int day) {
int dayNumber = (day % 7) + 1;
switch (dayNumber) {
// case 1 to 7
}
}
您可以为此使用提醒运算符%
public static String getDayByInteger(int day) {
int dayNumber = (day % 7) + 1;
switch (dayNumber) {
// case 1 to 7
}
}
试试这个:
public static String getDayByInteger(int day) {
int dayNumber = day % 7; // Formula..
switch (dayNumber) {
case 0:
return "Sunday";
case 1:
return "Monday";
case 2:
return "Tuesday";
case 3:
return "Wednesday";
case 4:
return "Thursday";
case 5:
return "Friday";
case 6:
return "Saturday";
default:
return "N/A";
}
}
试试这个:
public static String getDayByInteger(int day) {
int dayNumber = day % 7; // Formula..
switch (dayNumber) {
case 0:
return "Sunday";
case 1:
return "Monday";
case 2:
return "Tuesday";
case 3:
return "Wednesday";
case 4:
return "Thursday";
case 5:
return "Friday";
case 6:
return "Saturday";
default:
return "N/A";
}
}
不清楚您真正想要的是什么,如果您希望计算某个特定日期的星期几,您可以检查以下内容:不清楚您真正想要的是什么,如果您希望计算某个特定日期的星期几,您可以检查以下内容:tl;dr
该方法将一天的名称翻译成由指定的任何人类语言,例如或
伦迪
此类枚举的目的是使用这些对象而不是整数。与其只传递整数,不如传递对象,例如。这使您的代码更加自我记录,确保有效值的范围,并提供
java.time
该框架内置于Java 8及更高版本中。这些类取代了旧的麻烦的日期时间类,如Java.util.date
,.Calendar
,&Java.text.SimpleDateFormat
该项目现已启动,建议迁移到java.time
要了解更多信息,请参阅.和搜索堆栈溢出以获取许多示例和说明
大部分java.time功能都在中向后移植到java 6和7,并进一步适应于中
该项目使用其他类扩展了java.time。该项目是将来可能添加到java.time的试验场。您可以在这里找到一些有用的类,如Interval
,YearWeek
,YearQuarter
,等等
一周的第一天
如果必须将星期日计算为一周的第一天,请调整以获得ISO 8601值
通过从您的代码号中减去一,我们得到周一到周五的1-5。这正是我们想要的ISO 8601编号。但是周六我们得到-1,周日我们得到0。我利用这一事实,将负1或0添加到7,以获得所需的周六ISO编号6和周日ISO编号7。这可能是一种更简洁的方法虽然如此,但根据我有限的测试,这种方法是成功的
int yourDayNumber = 8; // 1 = Sunday, 2 = Monday, … , 8 = Sunday, 9 = Monday, etc.
int modResult = ( yourDayNumber % 7 );
int isoNumber = ( modResult - 1 );
if ( isoNumber < 1 ) {
isoNumber = ( 7 + isoNumber );
} else { // Else modResult is 1-5
// No code needed here.
}
太长,读不下去了
该方法将一天的名称翻译成由指定的任何人类语言,例如或
伦迪
此类枚举的目的是使用这些对象而不是整数。与其只传递整数,不如传递对象,例如。这使您的代码更加自我记录,确保有效值的范围,并提供
java.time
该框架内置于Java 8及更高版本中。这些类取代了旧的麻烦的日期时间类,如Java.util.date
,.Calendar
,&Java.text.SimpleDateFormat
该项目现已启动,建议迁移到java.time
要了解更多信息,请参阅.和搜索堆栈溢出以获取许多示例和说明
大部分java.time功能都在中向后移植到java 6和7,并进一步适应于中
该项目使用其他类扩展了java.time。该项目是将来可能添加到java.time的试验场。您可以在这里找到一些有用的类,如Interval
,YearWeek
,YearQuarter
,等等
一周的第一天
如果必须将星期日计算为一周的第一天,请调整以获得ISO 8601值
通过从您的代码号中减去一,我们得到周一到周五的1-5。这正是我们想要的ISO 8601编号。但是周六我们得到-1,周日我们得到0。我利用这一事实,将负1或0添加到7,以获得所需的周六ISO编号6和周日ISO编号7。这可能是一种更简洁的方法虽然如此,但根据我有限的测试,这种方法是成功的
int yourDayNumber = 8; // 1 = Sunday, 2 = Monday, … , 8 = Sunday, 9 = Monday, etc.
int modResult = ( yourDayNumber % 7 );
int isoNumber = ( modResult - 1 );
if ( isoNumber < 1 ) {
isoNumber = ( 7 + isoNumber );
} else { // Else modResult is 1-5
// No code needed here.
}
很难理解您的问题,但您似乎在寻找余数%
运算符。不太清楚输入的数字是什么。听起来您可能只需要第%7天
(然后索引到数组中,而不是使用开关/大小写)就可以逃脱了但是您的要求不清楚。您的问题很难理解,但您似乎在寻找余数%
运算符。输入的数字究竟是什么并不清楚。听起来您可能只需要第7天
(然后索引到数组中,而不是使用switch/case>)但是您的要求不清楚。请看dayNumber%7
何时给出7的结果?@Jon Skeet:现在好多了?等等,有个问题,它永远不会给出7的结果。@kai:是的,尽管我仍然不会使用开关st