题目描述
本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。
小蓝每天都锻炼身体。
正常情况下,小蓝每天跑 11 千米。如果某天是周一或者月初(11 日),为了激励自己,小蓝要跑 22 千米。如果同时是周一或月初,小蓝也是跑 22 千米。
小蓝跑步已经坚持了很长时间,从 20002000 年 11 月 11 日周六(含)到 20202020 年 1010 月 11 日周四(含)。请问
这段时间小蓝总共跑步多少千米?
题解
用到Calendar API 现实例化一个Calendar对象,设置一个初始年月日,月份0-11,即set第二个参数的值范围,分别用day ,week, year, month四个int类型变量存储当前的年月日星期,根据题意判断,在执行完一次之后用.add()方法改变时间,本题是add(Calendar.DATE,1)使时间往后推一天,第一个参数变量是当前时间,第二个变量是时间量(天)。
package lanqiaobei.com.yjm.Simple;
import java.util.Calendar;
//跑步锻炼
//小蓝每天都锻炼身体。
//
//正常情况下,小蓝每天跑 1 千米。如果某天是周一或者月初(1 日),为了激励自己,小蓝要跑 2 千米。如果同时是周一或月初,小蓝也是跑 2 千米。
//
//小蓝跑步已经坚持了很长时间,从 2000 年 1 月 1 日周六(含)到 2020 年 10 月 1 日周四(含)。请问这段时间小蓝总共跑步多少千米?
public class RunExercise {
public static void main(String[] args) {
int sum = 0;
Calendar c = Calendar.getInstance();
c.set(2000,0,1);// 第一个变量为开始年;第二个变量为开始月份,1月份为0;第三个变量为开始所在月份天数;2000年1月1日
while(true) {
int day = c.get(Calendar.DAY_OF_MONTH);//获取设置时间的天
int week = c.get(Calendar.DAY_OF_WEEK);//获取设置时间的星期
int year = c.get(Calendar.YEAR); //获取设置时间的年
int month = c.get(Calendar.MONTH); //获取设置时间的月
if(day == 1||week == 2) {
sum += 2;
}else {
sum += 1;
}
if(year == 2020 && month == 9 && day == 1) {
System.out.println(sum);
return;
}
c.add(Calendar.DATE,1);//执行相加相减时间量(天)
}
}
}
答案:8879