leetcode 每日一题 2023年12月30日 一周中的第几天

题目

给你一个日期,请你设计一个算法来判断它是对应一周中的哪一天。

输入为三个整数:daymonthyear,分别表示日、月、年。

您返回的结果必须是这几个值中的一个 {"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"}

示例 1:

输入:day = 31, month = 8, year = 2019
输出:"Saturday"

示例 2:

输入:day = 18, month = 7, year = 1999
输出:"Sunday"

示例 3:

输入:day = 15, month = 8, year = 1993
输出:"Sunday"

提示:

  • 给出的日期一定是在 19712100 年之间的有效日期。

分析

  1. 给出一个日期包含year,month,day现在要求是星期几。

  2. 首先需要找到起始的那天是星期几,
    然后算出给出来的日期距离那天有多少天,
    然后根据算出天数差距,除以一个星期7天看余数,得到是星期几。

  3. 根据提示,给出的日期范围是在1971到2100之间,那么我们直接去看一下1971年1月1日,是星期几。是星期五(Friday)。
    在这里插入图片描述

  4. 如何计算year-month-day距离1971年1月1日有多少天,只需要计算这中间的每一年有多少天,再加上当前年经历的天数即可。

  5. 最后对7取模即可得到当前是星期几。

代码

class Solution {String [] week = {"Friday", "Saturday","Sunday", "Monday", "Tuesday", "Wednesday", "Thursday"};int [] monDay = {31,28,31,30,31,30,31,31,30,31,30,31};public String dayOfTheWeek(int day, int month, int year) {//公元年份为4的倍数但非100的倍数,公元年份为400的倍数int total = day;for (int i = 1971; i <=year-1 ; i++) {int dayYear = 365;//判断以前的年有没有闰年if(isLeapYear(i)){dayYear = 366;}total+=dayYear;}//判断当年是否是闰年if(isLeapYear(year)){monDay[1] = 29;}for (int i = 0; i < month-1 ; i++) {total+=monDay[i];}return week[(total-1)%7];}public boolean isLeapYear(int year){return (year%4==0&&year%100!=0)||year%400==0;}
}

交流

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/602523.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JavaScript中的数组使用及常见属性方法

文章目录 一.什么是数组&#xff1f;二.数组的使用三、数组的方法四、数组总结 一.什么是数组&#xff1f; 在JavaScript中&#xff0c;数组是一种特殊的对象&#xff0c;用于存储和操作多个值。与其他编程语言不同&#xff0c;可以同时存储不同类型的值&#xff0c;并且长度是…

transforms图像增强(二)

一、图像变换 1、transforms.Pad transforms.Pad是一个用于对图像边缘进行填充的数据转换操作。 参数&#xff1a; padding&#xff1a;设置填充大小。可以是单个整数&#xff0c;表示在上下左右四个方向上均填充相同数量的像素&#xff1b;也可以是一个包含两个整数的元组…

Python学习笔记第八十天(OpenCV图像操作)

Python学习笔记第八十天 OpenCV图像操作图像读取与显示像素值访问与修改图像属性获取ROI定义与处理通道拆分与合并图像边框设置 后记 OpenCV图像操作 图像读取与显示 在开始任何图像处理之前&#xff0c;我们需要先读取图像。OpenCV提供了cv2.imread函数用于读取图像。这个函…

【Xilinx FPGA】异步 FIFO 的复位

FIFO&#xff08;First-In-First_Out&#xff0c;先入先出&#xff09;是一种的存储器类型&#xff0c;在 FPGA 开发中通常用于数据缓存、位宽转换或者跨时钟域&#xff08;多 bit 数据流&#xff09;。在使用异步 FIFO 时&#xff0c;应注意复位信号是否遵循相关要求和规范&am…

MySQL Mysqldump 一致性备份与大数据库备份 与 PG MYSQL 到底谁是NO.1

这开头还是介绍一下群&#xff0c;如果感兴趣PolarDB ,MongoDB ,MySQL ,PostgreSQL ,Redis, Oceanbase, Sql Server等有问题&#xff0c;有需求都可以加群群内&#xff0c;可以解决你的问题。加群请联系 liuaustin3 &#xff0c;&#xff08;共1830人左右 1 2 3 4 5&#xf…

android apk文件的签名问题

android的APK文件实际上是一个jar文件。jar的意思是瓶、罐&#xff0c;那就意味着jar文件是一个用来存放android应用相关文件的容器。事实上&#xff0c;它也确实如此&#xff0c;它只是一个带或不带压缩的zip文件&#xff0c;当你把.apk后缀改成.zip后&#xff0c;就能对此进行…

Web网页开发-总结笔记1

1. 主流浏览器都有哪些&#xff08;最少五个&#xff09;&#xff1f; 火狐浏览器、谷歌浏览器、IE浏览器、Edge浏览器、Opera浏览器、Safari浏览器2. 常见的浏览器内核都有哪些&#xff1f; IE &#xff1a;Trident 火狐&#xff1a;Gecko 苹果&#xff1a;Webkit 谷歌、欧朋、…

C/C++ 位段

目录 什么是位段&#xff1f; 位段的内存分配 位段的跨平台问题 什么是位段&#xff1f; 位段的声明与结构是类似的&#xff0c;但是有两个不同&#xff1a; 位段的成员必须是 int、unsigned int 或signed int 等整型家族。位段的成员名后边有一个冒号和一个数字 这是一个…

SSH远程连接

1 背景 在多处理器的分布式架构中&#xff0c;不同的ROS系统之间可能会频繁的涉及到文件的传输。   例如:我们在PC端编写ROS程序&#xff0c;而最终需要在Jetson nano上运行&#xff0c;如何将相关目录以及文件从PC上传到Jetson nano&#xff1f;这便需要使用SSH工具。 2 概…

im6ull学习总结(三-3)freetype

1、Freetype简介 FreeType是一个开源的字体渲染引擎&#xff0c;主要用于将字体文件转换为位图或矢量图形&#xff0c;并在屏幕上渲染出高质量的字体。它提供了一组API&#xff0c;使开发者能够在自己的应用程序中使用和呈现字体。 FreeType最初是作为一个独立项目开发的&…

[Excel]如何找到非固定空白格數列的條件數據? 以月份報價表單為例

在群組中看到上述問題&#xff0c;研判應是一份隨月份變動的產品報價表單&#xff0c;空白欄可能表示該月份價格與上個月份一致。這個問題是需要取得最近一次單價和倒數第二次單價&#xff0c;常用且實務的excel案例值得紀錄。 最近一次單價: INDEX($B2:$G2,1,LARGE(IF(ISBLAN…

SpringSecurity集成JWT实现后端认证授权保姆级教程-环境搭建篇

&#x1f341; 作者&#xff1a;知识浅谈&#xff0c;CSDN签约讲师&#xff0c;CSDN博客专家&#xff0c;华为云云享专家&#xff0c;阿里云专家博主 &#x1f4cc; 擅长领域&#xff1a;全栈工程师、爬虫、ACM算法 &#x1f492; 公众号&#xff1a;知识浅谈 &#x1f525;网站…

跨平台开发教学:构建同时支持iOS和Android的教育网校APP

当下&#xff0c;教育行业也逐渐迎来了数字化转型的时代。构建一款支持iOS和Android的教育网校APP&#xff0c;不仅可以提供更好的用户体验&#xff0c;还能扩大应用的覆盖面&#xff0c;满足不同用户群体的需求。 一、选择合适的跨平台开发框架 在开始构建教育网校APP之前&a…

MidTool图文创作-GPT-4与DALL·E 3的结合

GPT-4与DALLE 3的结合 GPT-4是由OpenAI开发的最新一代语言预测模型&#xff0c;它在前代模型的基础上进行了大幅度的改进&#xff0c;不仅在文本生成的连贯性、准确性上有了显著提升&#xff0c;还在理解复杂语境和执行多步骤指令方面表现出了更高的能力。而DALLE 3则是一个创…

构建异地企业网络互联的高效路径

在当今数字化浪潮中&#xff0c;企业的业务拓展已不再受限于地理位置。为了在全球竞争中立于不败之地&#xff0c;越来越多的企业选择在不同城市设立分支机构&#xff0c;构建异地网络&#xff0c;实现高效的协同办公。本文将深入探讨在北上广等经济发达地区&#xff0c;如何通…

重排和重绘的区别,什么情况下会触发这两种情况

重排&#xff08;reflow&#xff09;和重绘&#xff08;repaint&#xff09;是两种不同的操作&#xff0c;它们在网页渲染过程中发生。 重排是指当元素的布局和几何属性发生改变时&#xff0c;浏览器需要重新计算元素的几何属性&#xff0c;然后重新布局所有相关元素的过程。这…

Linux部署Yearning并结合内网穿透工具实现公网访问本地web管理界面

文章目录 前言1. Linux 部署Yearning2. 本地访问Yearning3. Linux 安装cpolar4. 配置Yearning公网访问地址5. 公网远程访问Yearning管理界面6. 固定Yearning公网地址 前言 Yearning 简单, 高效的MYSQL 审计平台 一款MYSQL SQL语句/查询审计工具&#xff0c;为DBA与开发人员使用…

计算机毕业设计——SpringBoot 个人博客管理系统(附源码)

1&#xff0c;绪论 1.1 背景调研 在互联网飞速发展的今天&#xff0c;互联网已经成为人们快速获取、发布和传递信息的重要渠道&#xff0c;它在人们政治、经济、生活等各个方面发挥着重要的作用。互联网上发布信息主要是通过网站来实现的&#xff0c;获取信息也是要在互联网中…

BART论文解读:BERT和GPT结合起来会发生什么?

BART:Denoising Sequence-to-Sequence Pre-training for Natural Language Generation, Translation, and Comprehension 主要工作 提出了BART (Bidirectional and Auto-Regressive Transformers)&#xff0c; 是一种用于自然语言生成、翻译和理解的序列到序列的预训练方法。它…

C语言编译器(C语言编程软件)完全攻略(第二十七部分:VS安全函数问题(C语言安全函数)是怎么回事?如何解决?)

介绍常用C语言编译器的安装、配置和使用。 二十七、VS安全函数问题&#xff08;C语言安全函数&#xff09;是怎么回事&#xff1f;如何解决&#xff1f; 在 VS&#xff08;Visual Studio&#xff09;下编译C语言程序&#xff0c;如果使用了 scanf()、gets()、strcpy()、strca…