Java 通过输入特定日期计算周日
我需要创建一个程序,显示一周中的哪一天,当您输入控制台的特定日期时 这是我写的代码,但仍然不起作用,为什么会这样Java 通过输入特定日期计算周日,java,calendar,Java,Calendar,我需要创建一个程序,显示一周中的哪一天,当您输入控制台的特定日期时 这是我写的代码,但仍然不起作用,为什么会这样 public class CalculateDay{ public static void main(String []args){ int m = Integer.parseInt(args[0]); int d = Integer.parseInt(args[1]); int y = Integer.parse
public class CalculateDay{
public static void main(String []args){
int m = Integer.parseInt(args[0]);
int d = Integer.parseInt(args[1]);
int y = Integer.parseInt(args[2]);
System.out.println("Finding day of week for "+m+"-"+d+"-"+y);
int yo = y - ((14-m)/12);
int x = yo + yo/4 - yo/100 + yo/400;
int mo = m + 12*((14-m)/12) -2;
int dayOfWeek = (d + x + (31*mo)/12)%7;
String dayString;
switch(dayOfWeek){
case 0: dayString = "Sunday";
break;
case 1: dayString = "Monday";
break;
case 2: dayString = "Tuesday";
break;
case 3: dayString = "Wednesday";
break;
case 4: dayString = "Thursday";
break;
case 5: dayString = "Friday";
break;
case 6: dayString = "Saturday";
break;
default: dayString = "Could not find";
}
System.out.println(dayString);
}
}
试试这个:
int m = Integer.parseInt(args[0]);
int d = Integer.parseInt(args[1]);
int y = Integer.parseInt(args[2]);
System.out.println("Finding day of week for "+m+"-"+d+"-"+y);
Calendar cal = new GregorianCalendar(y, m, d);
System.out.println("DAY_OF_WEEK: " + cal.get(Calendar.DAY_OF_WEEK));
为什么你认为它应该起作用?你认为你在计算什么?你的输入是什么,你得到了什么输出,你期望什么?你可以从公历日期计算出儒略日数。您的代码中有此方法的提示(例如
(14-m)/12
和yo/4-yo/100+yo/400
),但它并不完全相同。也许试一下这个方法,看看你是否能得到正确的答案。我有一个基本的公历计算,然后我使用了开关构造(正如作业要求的那样)。我肯定做错了什么,但就是找不到。谢谢你的建议,我会看的。