2015 年山东信奥(NOIP2015)复赛 小学组试题3——上课时间

该博客讨论了如何计算在给定天数n内,按照特定课程安排(每周六上午4节课)的总上课时间。题目要求在不同数据范围内求解总上课时间,适合使用C++编程解决。
摘要由CSDN通过智能技术生成

上课时间

【问题描述】

现在,小学实行双休日(好幸福!)。
以前,周六的上午也是要上课滴:周一到周五上午四节课,下午两节课;
周六上午还要上 4 节课,下午才开始休息。
已知每节课 40 分钟。
给你 n,请你从周一开始算起,n 天的上课时间是多少分钟?

【输入】

输入文件名为 class.in。
输入共一行,一个正整数 n,表示天数。

【输出】

输出文件名为 class.out。
输出共一行,包含一个正整数,表示总上课时间 t。

【输入输出样例】

class.in class.out
9 1840

【样例说明】

9 天包括:
完整的 1 周:5

以下是一个 Java 实例,可以用来判断日期是否为节假日、双休日、调休日: ```java import java.time.DayOfWeek; import java.time.LocalDate; public class HolidayChecker { // 节假日日期列表,这里只列出了部分节假日日期,可以根据实际情况进行补充 private static final String[] HOLIDAYS = { "2022-01-01", // 元旦 "2022-02-01", // 春节 "2022-02-02", "2022-02-03", "2022-04-05", // 清明节 "2022-05-01", // 劳动节 "2022-06-01", // 儿童节 "2022-09-21", // 中秋节 "2022-10-01", // 国庆节 "2022-10-02", "2022-10-03", "2022-10-04", "2022-10-05", "2022-10-06", "2022-10-07" }; /** * 判断指定日期是否为节假日 * * @param date 日期,格式为"yyyy-MM-dd" * @return 是否为节假日 */ public static boolean isHoliday(String date) { for (String holiday : HOLIDAYS) { if (date.equals(holiday)) { return true; } } return false; } /** * 判断指定日期是否为双休日 * * @param date 日期,格式为"yyyy-MM-dd" * @return 是否为双休日 */ public static boolean isWeekend(String date) { LocalDate localDate = LocalDate.parse(date); DayOfWeek dayOfWeek = localDate.getDayOfWeek(); return dayOfWeek == DayOfWeek.SATURDAY || dayOfWeek == DayOfWeek.SUNDAY; } /** * 判断指定日期是否为调休日 * * @param date 日期,格式为"yyyy-MM-dd" * @return 是否为调休日 */ public static boolean isAdjustRestDay(String date) { LocalDate localDate = LocalDate.parse(date); DayOfWeek dayOfWeek = localDate.getDayOfWeek(); // 判断是否为周一周五的工作日,如果是则需要判断是否为调休日 if (dayOfWeek != DayOfWeek.SATURDAY && dayOfWeek != DayOfWeek.SUNDAY) { // 调休日为节假日前后的工作日,需要判断前一天和后一天是否为节假日 LocalDate prevDate = localDate.minusDays(1); LocalDate nextDate = localDate.plusDays(1); return isHoliday(prevDate.toString()) || isHoliday(nextDate.toString()); } return false; } public static void main(String[] args) { String date = "2022-01-01"; System.out.println(date + "是否为节假日:" + isHoliday(date)); System.out.println(date + "是否为双休日:" + isWeekend(date)); System.out.println(date + "是否为调休日:" + isAdjustRestDay(date)); } } ``` 在这个例子中,我们使用了 Java 8 中的 LocalDate 类来处理日期,并使用 DayOfWeek 类来获取星期几。在 isHoliday() 方法中,我们使用一个字符串数来存储节假日日期列表,并通过循环来判断指定日期是否为节假日。在 isWeekend() 方法中,我们使用 DayOfWeek 类来判断指定日期是否为周六或周日。在 isAdjustRestDay() 方法中,我们判断指定日期是否为周一周五的工作日,如果是,则判断前一天和后一天是否为节假日来确定是否为调休日。最后,在 main() 方法中,我们演示了如何使用这些方法来判断指定日期是否为节假日、双休日、调休日。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小芒果_01

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值