蓝桥杯省赛-顺子日期
目录
问题描述
运行限制
原题链接
代码思路
问题描述
本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。
小明特别喜欢顺子。顺子指的就是连续的三个数字:123、456 等。顺子日期指的就是在日期的 yyyymmdd 表示法中,存在任意连续的三位数是一个顺子的日期。例如 20220123 就是一个顺子日期,因为它出现了一个顺子:123; 而 20221023 则不是一个顺子日期,它一个顺子也没有。小明想知道在整个 2022 年份中,一共有多少个顺子日期?
运行限制
- 最大运行时间:1s
- 最大运行内存: 512M
原题链接
顺子日期
https://www.lanqiao.cn/problems/2096/learning/?page=1&first_category_id=1&name=%E6%97%A5%E6%9C%9F
代码思路
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;public class Main {// 一定要抛出异常,不然parse()方法会报错.public static void main(String[] args) throws ParseException {// 将日期格式化为"yyyyMMdd".SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");// 日历类Calendar c1 = Calendar.getInstance();Calendar c2 = Calendar.getInstance();c1.setTime(sdf.parse("20220101"));c2.setTime(sdf.parse("20230101"));int ans = 0;while (c2.compareTo(c1) > 0) {// 将日期转化成,格式为"yyyyMMdd"的字符串.String string = sdf.format(c1.getTime());if (string.contains("012") || string.contains("123")) {ans++;}// 增加每天的天数c1.add(Calendar.DATE, +1);}System.out.println(ans);}
}
