顺子日期 蓝桥杯

2024-02-17 21:12
文章标签 蓝桥 日期 顺子

本文主要是介绍顺子日期 蓝桥杯,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

调用API

思路: 设置Calendar的属性,获取Calendar的毫秒数,转换成指定格式的字符串(yyyyMMdd),判断字符串中是否包含符合条件的,若有就+1,
迭代: 每次循环给Calendar加上一天即可

import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.util.*;
// 1:无需package
// 2: 类名必须Main, 不可修改public class Main {public static void main(String[] args) {Calendar calendar = Calendar.getInstance();calendar.set(Calendar.YEAR, 2022);calendar.set(Calendar.MONTH, 0);calendar.set(Calendar.DAY_OF_MONTH, 1);//"234","345","456","567","678","789"// 上面的这么多不可能出现String[] strs = {"012","123"};int cnt = 0;SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");while (calendar.get(Calendar.YEAR) == 2022) {String s = sdf.format(calendar.getTimeInMillis());for(String str: strs){if(s.contains(str)){cnt++;break;}}calendar.add(Calendar.DAY_OF_MONTH,1);}System.out.println(cnt);}
}

模拟

前提是要知道闰年的条件

  1. 能被400整除
  2. 是4的倍数而不是100的倍数
    满足上面条件的其中一个即可
import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.util.*;
// 1:无需package
// 2: 类名必须Main, 不可修改public class Main {//1 3 5 7 8 10 12//2 4 6 9 11static int[] days = {0,31,28,31,30,31,30,31,31,30,31,30,31,0};static int day = 1, month =1 ,year = 2022;public static boolean check(){int num = year * 100 + month+day;String s = num+"";// 2022 10 11int steps = 1;for(int i=0;i<s.length()-1;i++) {int pre = s.charAt(i);int next = s.charAt(i+1);if(next == pre+1){steps ++;}else {steps = 1;}if(steps == 3)return true;}return false;}public static void main(String[] args) {int ans = 0;while(year==2022){if(check()){ans++;}day++;if(month==2){if(year%400==0 || year%4==0 && year%100!=0){if(day>29){day=1;month++;}}else{if(day>28){day=1;month++;}}}else if(day>days[month]){//不加的话这里会溢出day=1;month++; // 当day =32,month = 12的时候,month会加1=>13,走到day>days[month]的时候会下标越界}if(month>12)year++;}System.out.println(ans);}
}

这篇关于顺子日期 蓝桥杯的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/718999

相关文章

C语言蓝桥杯

一、语言基础 竞赛常用库函数 最值查询 min_element和max_element在vector(迭代器的使用) nth_element函数的使用 例题lanqiao OJ 497成绩分析 第一种用min_element和max_element函数的写法 第二种用min和max的写法 二分查找 二分查找只能对数组操作 binary_s

javaScript日期相加减例子

当前时间加上2天 var d = new Date(“2015-7-31”); d.setDate(d.getDate()+2); var addTwo=d.getFullYear()+”年”+(d.getMonth()+1)+”月”+d.getDate()+”日”; “控制台输出===============”+”当前日期加2天:”+addTwo; 使用这种方法,月份也会给你计算.

linux下修改系统日期与时间

cp /usr/share/zoneinfo/Asia/Shanghai  /etc/localtime

时间日期与时间戳转换(Linux C)

本文主要学习三个知识点,第一是UTC时间、GMT时间的概念;第二是在Unix环境下UTC时间与时间戳的转换;第三是在C语言中如何修改时区。 本文参考了《UNP》以及 http://blog.csdn.net/foxir/article/details/43916601 http://blog.csdn.net/ljafl9988/article/details/16847935 一、

Java中计算两个日期间隔多少天

String dbtime1 = "2017-02-23";  //第二个日期 String dbtime2 = "2017-02-22";  //第一个日期 //算两个日期间隔多少天 SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); Date date1 = format.parse(dbtime1); Date dat

实现日期往前或往后或跳转到指定月份或天数

//月份跳转 //初始日期 String yearMonth = "201702"; String yearMonthStr = ""; //往前(负数)或往后(正数) int add = -2; SimpleDateFormat sdf = new SimpleDateFormat("yyyyMM"); Date source = sdf.parse(yearMonth); Cal

Java:日期类2

SimpleDateFormat日期格式化类 构造 SimpleDateFormat(String pattern); pattern是我们自己制定的日期格式,字母不能改变,但连接符可以改变 yyyy--MM--dd--HH 时间单位字母表示 Y年M月d日H时m分s秒 方法 String format(Date date)将Date对象按照对应格式转成String Date par

【JavaScript】版本号和日期时间的比较

JS使用 ‘>’ 运算符比较两个字符串大小时,会把字符串转换为ASCII码依次比较。 比较标准时间格式可以直接使用 ’ > ’ 比较; (2018-07-20格式)

掌握Go语言中的时间与日期操作

Go语言中的时间与日期操作 在编写程序时,处理时间和日期看似是一项无关紧要的任务,但在需要同步多个任务或从文本文件中读取时间时,它的重要性便凸显出来。Go语言中的time包为我们提供了丰富的时间与日期操作功能。本文将详细介绍如何在Go语言中解析时间与日期字符串、在不同的格式之间进行转换,以及如何按照所需的格式输出时间和日期。 初识time包 在学习如何解析字符串并将其转换为时间或日期之前,我

Oracle之用TO_CHAR函数将日期格式转化为不带前导零的月份和日

要求: 1、日期格式转化成字符串格式,月和日前面的0需要去掉,如日期2024-09-06需要转化成2024-9-6; 2、如果用截取拼接函数写法就会复杂,最好用TO_CHAR函数格式化实现。 正确写法: SELECT TO_CHAR(SYSDATE,'YYYY-fmMM-dd') AS DATE1 , -- 执行结果为 2024-9-6TO_CHAR(SYSDATE,'fmYYYY-MM-d