任务二:停电停多久问题关键算法
Lee的老家住在工业区,日耗电量非常大。
今年7月,传来了不幸的消息,政府要在7、8月对该区进行拉闸限电。政府决定从7月1日起停电,然后隔一天到7月3日再停电,再隔两天到7月6日停电,依次下去,每次都比上一次长一天。
Lee想知道自己到家后到底要经历多少天倒霉的停电。请编写程序帮他算一算。
注意:从键盘输入放假日期、开学日期,日期限定在7、8月份,且开学日期大于放假日期,然后在屏幕上输出停电天数。
提示:可以用数组标记停电的日期。
package day_9;
import java.util.Scanner;
public class Ex_2 {
public static void main(String[] args) {
Scanner input =new Scanner(System.in);
System.out.println("请输入放假日期(xxx-xx-xx)");
String fangjia = input.next();
System.out.println("请输入开学日期(xxx-xx-xx)");
String kaixue = input.next();
//获得 年 月 日
String [] ai = fangjia.split("-");
String [] xi = kaixue.split("-");
//标记放假天数 存在array数组中
int[] array = new int[62];
int temp =1;
for(int i=1;i<=62;i=i+temp) {
array[i] = i;
temp++;
}
int num = 0;//停电天数
//
//8月份放假
if(Integer.parseInt(ai[1])>7 && Integer.parseInt(xi[1])>7) {
int a = 31+Integer.parseInt(ai[2]); //放假
int b = 31+Integer.parseInt(xi[2]); //开学
for(int i=0;i<array.length;i++) {
if(array[i]>=a && array[i]<b) {
num++;
}
}
}
//七月份放假 7月份开学
if(Integer.parseInt(ai[1])<=7 && Integer.parseInt(xi[1])<=7) {
int a = Integer.parseInt(ai[2]); //放假
int b = Integer.parseInt(xi[2]); //开学
for(int i=0;i<array.length;i++) {
if(array[i]>=a && array[i]<b) {
num++;
}
}
}
//七月份放假 8月份开学
if(Integer.parseInt(ai[1])<=7 && Integer.parseInt(xi[1])>7) {
int a = Integer.parseInt(ai[2]); //放假
int b = 31+Integer.parseInt(xi[2]); //开学
for(int i=0;i<array.length;i++) {
if(array[i]>=a && array[i]<b) {
num++;
}
}
}
System.out.println(num);
}
}
- 关键 方法
- Str.split(a) 根据a来分割字符串
- Integer.parseInt(str); 将字符串转换为int