顺子日期(结果填空)

2024-04-07 05:12
文章标签 日期 填空 顺子

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

为了解决这个问题,我们需要遍历2022年的每一天,并检查日期的每一位数字以查找顺子。下面是一个Java程序,用于计算2022年中的顺子日期数量:

public class Main {public static void main(String[] args) {int count = 0;  for (int day = 1; day <= 365; day++) {  String date = String.format("%d22%02d%02d", 20, 1 + (day - 1) / 31, (day - 1) % 31 + 1);  System.out.print(date.toString());if (isShunziDate(date)) {  count++;  }  }  System.out.println("Total shunzi dates in 2022: " + count);  }  private static boolean isShunziDate(String date) {  for (int i = 0; i <= date.length() - 3; i++) {  int first = date.charAt(i) - '0';  int second = date.charAt(i + 1) - '0';  int third = date.charAt(i + 2) - '0';  if (second == first + 1 && third == second + 1) {  return true;  }  }  return false;  }    
}

在上面的代码中,isShunziDate 方法检查给定的日期字符串是否包含顺子。我们遍历日期字符串的每一位,并检查当前位、下一位和再下一位是否构成顺子(即当前位+1等于下一位,下一位+1等于再下一位)。

main 方法则遍历2022年的每一天,构造出对应的日期字符串,并调用 isShunziDate 方法来检查。如果某一天的日期字符串包含顺子,则将计数器 count 增加1。

最后,程序输出2022年中顺子日期的总数。

请注意,这个程序假设2022年每个月的天数是固定的(即1月31天,2月28天,3月31天等),这在通常情况下是成立的,因为2022年不是闰年。如果需要更精确的处理(例如,考虑闰年2月有29天的情况),可以改用java.time包中的LocalDate类来生成日期。

运行上述程序,你将得到2022年中顺子日期的总数。你只需要提交这个整数作为答案即可。


解释String date = String.format("%d022%02d%02d", 20, 1 + (day - 1) / 31, (day - 1) % 31 + 1);

这行代码用于生成一个形如 2022MMDD 的日期字符串,其中 MM 代表月份,DD 代表日。这行代码是为了遍历2022年的每一天,而不仅仅是考虑每个月的实际天数。

具体来说,String.format 是一个用于格式化字符串的方法。在这个例子中,它使用三个参数来生成一个字符串。

  1. "%d22%02d%02d" 是格式字符串。

    • %d 表示一个整数,会替换为后面提供的参数。
    • 22 是字面量,直接包含在结果字符串中。
    • %02d 表示一个至少两位的整数,不足两位时前面用0填充。
  2. 20 是第一个 %d 的替换值,因此它会直接输出为 20

  3. 1 + (day - 1) / 31 用于计算月份。

    • day - 1 是当前循环的索引(从0开始),减1是为了从1开始计数。
    • (day - 1) / 31 实际上是将天数除以31(一个月的最大天数),从而得到月份。这里假设每个月都是31天,这在实际情况中是不准确的,但在这个特定问题中,我们只需要一个从1到12的连续数字来表示月份,因此这个简化是可行的。
    • 1 + ... 是因为我们需要从1开始计数月份,而不是从0开始。
  4. (day - 1) % 31 + 1 用于计算日期。

    • (day - 1) % 31 使用模运算(取余)来得到当前天在“当前月”(实际上是按31天一个周期计算的)中的位置。
    • + 1 是为了从1开始计数日期,而不是从0开始。

因此,这行代码为2022年的每一天生成一个字符串,即使它不是按照实际的月份天数来生成的。例如,当 day 为32时,生成的日期字符串将是 20220201,尽管在现实中2月并没有32天。但是,由于我们只关心顺子的存在性,而不是日期的实际有效性,这种简化是允许的。

这篇关于顺子日期(结果填空)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

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

Linux date命令 日期格式化与计算

参考资料 8.4.7 dateコマンド(システムの日付と時刻を表示する)【Linux】dateコマンドで日付フォーマットの変更及び日付計算の方法date コマンド 目录 一. 基本语法1.1 -d 选项1.2 格式化 二. 年月日格式化三. 日计算3.1 一天之前3.2 一天之后 四. 月计算4.1 两个月前的月初4.2 两个月后的月初4.3 指定月份的最后一天4.4 指定月份下个月