题目:
问题描述:
在平时日常生活中通常需要回答当月的某日期为星期几的问题,常常通过提供你当月某天是星期几,然后需要计算当月的某日期为星期几。提供当月日期和星期的数(用阿拉伯数表示,0为Sunday,1为Monday,2为Tuesday,3为Wednesday,4为Thursday,5为Friday,6为Saturday),然后提供一个当月的日期号数,请计算该日期号数为星期几,使用英文单词输出星期几。
输入:
标准输入,输入的第一行为计算用例数为整数n,接下来的n行,每行有3个由空格分开整数,其中第一个整数为当月的日期数,第二个整数为第一个整数表示的日期日的星期几,第三个整数是需要你回答当月该日期是星期几,如该行输入为:1 3 10,表示当月的1号为星期三,请问当月的10号为星期几。
输出:
标准输出:每一个计算的结果使用一行输出,输出使用英文单词输出星期几。
输入样例:
2
1 3 10
10 0 5输出样例:
Friday
Tuesday
代码:
import java.util.Scanner;
public class Xingyuxingxi {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int a,b,c,d;
a= sc.nextInt();
for (int i = 0; i < a; i++) {
b= sc.nextInt();
c= sc.nextInt();
d= sc.nextInt();
if(b<d) {//如果求的日期在当前日期之后
for (int j = b; j < d; j++) {
if (c == 6) {//从前往后推,每次加一天,到星期六以后跳到星期天
c = 0;
}
else
c++;
}
}
else//如果求的日期在当前日期之前
{
for (int j = b; j >d; j--) {
if (c == 0) {//从后往前推,每次减少一天,到星期天以后跳到星期六
c = 6;
}
else
c--;
}
}
switch (c)//输出c对应的星期
{
case 0:System.out.println("Sunday");break;
case 1:System.out.println("Monday");break;
case 2:System.out.println("Tuesday");break;
case 3:System.out.println("Wednesday");break;
case 4:System.out.println("Thursday");break;
case 5:System.out.println("Friday");break;
case 6:System.out.println("Saturday");break;
}
}
}
}