三天打鱼两天晒网
题目描述
Tom也是一个ACM爱好者,从2000年1月1日就开始了ACM/ICPC的练习,一直坚持到现在。可惜的是,他一直采用的是这种“三天打渔两天晒网”的训练方式,也就是说,每做三天的训练,一定会休息两天,如此反复,直到今天。
现在的问题是:给你一个日期,你能计算出这一天Tom是在训练还是休息吗?
输入
输入数据首先包含一个整数T(T<=20),表示有T组测试数据,然后是T行,每行包含一个格式如“YYYY/MM/DD”的日期,题目保证所有日期在2000年1月1日和今天之间
输出
对于每个测试用例,如果Tom在这一天是训练,则请输出“Fishing”,否则,请输出“Resting”。
样例输入 Copy
2
2000/01/03
2000/01/04
样例输出 Copy
Fishing
Resting
import java.util.*;
public class Main{
public static void main(String[] args){
Scanner scan=new Scanner(System.in);
int N=scan.nextInt();
while(scan.hasNext()){
for(int i=0;i<N;i++){
String S=scan.next();
int a=Integer.parseInt(S.substring(0,4));/*年*/
int b=Integer.parseInt(S.substring(5,7));/*月*/
int c=Integer.parseInt(S.substring(8,10));/*日*/
int sum=0;
for(int j =2000;j<=a-1;j++){/*这年之前有几天*/
if(j%4==0&&j%100!=0||j%400==0){
sum+=366;
}else{
sum+=365;
}
}
int[] ryear={31,29,31,30,31,30,31,31,30,31,30,31};
int[] pyear={31,28,31,30,31,30,31,31,30,31,30,31};
if(a%4==0&&a%100!=0||a%400==0){
for(int k=0;k<b-1;k++)
sum+=ryear[k];
}
else {
for(int x=0;x<b-1;x++)
sum+=pyear[x];
}
int count=sum+c;
if(count%5==3||count%5==2||count%5==1)
System.out.println("Fishing");
else
System.out.println("Resting");
}
}
}
}