算法题-给定一个日期,输出星期几

目录

 

给定日期,输出对应是星期几

测试结果

如1900年 5月6日是星期三,计算给的日期是星期几


给定日期,输出对应是星期几

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main()
{
        char input[100];
        int date[3];
        int num[12] = {31,28,31,30,31,30,31,31,30,31,30,31};

        int temp;

        printf("input data:");
        while(scanf("%s", input) != EOF)
        {
                temp = 0;
                char *p;
                int num4;
                int num100;
                int num400;
                int sumDay;
                int isRun;
                num[1] = 28;

                p = strtok(input, ",");

                while(p != NULL && temp < 3)
                {
                        date[temp] =  atoi(p);
                        temp++;
                        p = strtok(NULL, ",");
                }

                num4 = date[0]/4;
                num100 = date[0]/100;
                num400 = date[0]/400;

                sumDay = (date[0] - 1)*365 + date[2] + num4 - num100 + num400;

                if((date[0]%4 == 0 && date[0] % 100 != 0)  || date[0]%400 == 0)
                        num[1] = 29;

                for(int i = 0; i < date[1] - 1; i++)
                        sumDay += num[i];

                switch(sumDay % 7)
                {
                        case 0: printf("星期日\n"); break;
                        case 1: printf("星期一\n"); break;
                        case 2: printf("星期二\n"); break;
                        case 3: printf("星期三\n"); break;
                        case 4: printf("星期四\n"); break;
                        case 5: printf("星期五\n"); break;
                        case 6: printf("星期六\n"); break;
                }

        }

        return 0;
}

测试结果

7c3131b1da074d5992a4b3b6742b2fb8.png

如1900年 5月6日是星期三,计算给的日期是星期几

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include<math.h>

int main()
{
        int num1900[3];
        int inputY,inputM,inputD;
        int sumDay1900;
        int sumDayInput = 0;
        int num[12] = {31,28,31,30,31,30,31,31,30,31,30,31};
        int inputDate[3];
        int gap;

        scanf("%d,%d,%d", &inputY, &inputM, &inputD);

        num1900[0] = (1900 - 1) / 4;
        num1900[1] = (1900 - 1) / 100;
        num1900[2] = (1900 - 1) / 400;

        if((1900/4 == 0 && 1900/100 != 0) || 1900 / 400 == 0)
                num[1] = 29;

        //1900年5月6号是星期三
        sumDay1900 = (1900 - 1) * 365 + num1900[0] - num1900[1] + num1900[2] + 6; //几日在这里直接加上了,下面只加月份
        for (int i = 0; i < 5; i++)
                sumDay1900 += num[i];

        num[1] = 28;

        if((inputY/4 == 0 && inputY/100 != 0)|| inputY/400 == 0)
                num[1] = 29;

        inputDate[0] = (inputY - 1) / 4;
        inputDate[1] = (inputY - 1) / 100;
        inputDate[2] = (inputY - 1) / 400;
        sumDayInput = (inputY - 1)* 365 + inputDate[0] - inputDate[1] + inputDate[2] + inputD;
        for(int i = 0; i < inputM; i++)
                sumDayInput += num[i];

        printf("sumDayInput: %d, sumDay1900: %d inputY: %d inputM: %d inputD: %d\n",
                        sumDayInput, sumDay1900, inputY, inputM, inputD);
        if(sumDayInput > sumDay1900)
        {
                gap = sumDayInput - sumDay1900;
                switch(gap % 7)
                {
                        case 0: printf("星期三\n"); break;
                        case 1: printf("星期四\n"); break;
                        case 2: printf("星期五\n"); break;
                        case 3: printf("星期六\n"); break;
                        case 4: printf("星期日\n"); break;
                        case 5: printf("星期一\n"); break;
                        case 6: printf("星期二\n"); break;
                }

        }else {
                gap = sumDay1900 - sumDayInput;
                switch(gap % 7)
                {
                        case 0:printf("星期三\n"); break;
                        case 1:printf("星期二\n"); break;
                        case 2:printf("星期一\n"); break;
                        case 3:printf("星期日\n"); break;
                        case 4:printf("星期六\n"); break;
                        case 5:printf("星期五\n"); break;
                        case 6:printf("星期四\n"); break;
                }
        }

        return 0;
}

 

 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Python技术】AI编程新手快速入门学习LangChain大模型框架

如果我们要搞AI智能体&#xff0c;普通人一般 借助腾讯元器、 coze、KIMI 或者其他大平台搞一搞&#xff0c;比如我配置的coze智能体在微信公众号聊天。 对于程序员来说&#xff0c;一言不合就喜欢搞代码。 前面文章也介绍了不少关于AI知识库问答&#xff0c;AIagent 不少开源…

STM32基于HAL库的HC-SR04模块超声波测距

文章目录 一、HC-SR04模块介绍二、创建工程1.选择芯片2.配置RCC、SY![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/9d2a5b883f0e409eabb804e6da861277.png)3.配置串口14.配置定时器5.配置GPIO 三、Keil代码1.勾选Use MicroLIB2.创建SR04.c和SR04.h文件3.其他代码 …

钣金件设计规范

(一&#xff09; 钣金 1、钣金的概念 钣金&#xff08;sheet metal&#xff09;是针对金属薄板&#xff08;厚度通常在6mm以下&#xff09;的 一种综合冷加工工艺&#xff0c;包括冲裁、折弯、拉深、成形、锻压、铆合等&#xff0c; 其显著的特征是同一零件厚度一致。 2、钣…

使用 Ollama 本地运行各种 LLM

今天看看另外一个产品Ollama。Ollama 的安装非常简单&#xff0c;只需从官网&#xff08;https://ollama.com/download&#xff09;下载后解压缩&#xff0c;并在 Terminal 中运行脚本 ollama run llama3 即可完成环境设置。 我尝试运行 Llama3&#xff0c;虽然在运行时占用了大…

网络协议分析

网络协议分析 网络协议分析概述用IP实现异构网络互联网络协议的分层TCP/IP的分层模型协议分析协议分析应用协议分析任务 常见网络协议PPP协议报文选项IPCP认证协议PAP安全缺陷认证协议CHAPPPPoE协议流程 地址解析协议ARPARP的思想和步骤ARP报文格式及封装 移动IP移动IP的工作机…

OpenAI 近期动荡:解雇 Sam Altman 事件分析与 AI 未来展望

引言 OpenAI 的动荡从未停止。最近&#xff0c;由于 OpenAI 高层领导的更迭&#xff0c;引发了广泛的关注和讨论。特别是在 Sam Altman 被解雇后&#xff0c;再次回归 CEO 职位的过程&#xff0c;更是引起了公众和业内的巨大反响。前 OpenAI 董事会成员 Helen Toner 在最新一期…

vue使用tailwindcss

安装依赖 pnpm add -D tailwindcss postcss autoprefixer创建配置文件tailwind.config.js npx tailwindcss init在配置文件content中添加所有模板文件的路径 /** type {import(tailwindcss).Config} */ export default {content: [./index.html, ./src/**/*.{vue,js,ts,jsx,…

安卓模拟鼠标,绘图板操作电脑PC端,卡卡罗特也说好,儿童节快乐

家人们&#xff0c;上链接了&#xff1a;https://download.csdn.net/download/jasonhongcn/89387887

Go语言-切片底层探索 —— 补充篇:切片和底层数组到底是什么关系?

之前的切片探索中&#xff0c;上篇通过一道算法题目&#xff0c;了解到切片的两大特性&#xff1a;一是&#xff1a;切片是引用类型&#xff0c;指向底层数组&#xff0c;修改其底层数组的时候&#xff0c;会影响切片中的值。二是&#xff1a;向切片中添加元素的时候&#xff0…

限流算法整理——滑动窗口限流算法

限流算法描述 滑动窗口限流需要将每个窗口空间划分为无限小的窗口区间&#xff0c;并且动态调整区间的起始点&#xff0c;并且在调整完毕之后需要判断各个区间&#xff0c;累加各个区间的请求&#xff0c;查看是否到达最大的阈值&#xff0c;以此返回允许请求还是拒绝请求 算…

SDL教程(二)——Qt+SDL播放器

前言 ​ 这篇文章主要是使用SDL来打开视频&#xff0c;显示视频。后续会再继续使用SDL来结合FFmpeg。来能够直接使用网上的demo进行学习。 正文 一、环境 Qt 5.15.2 MSVC2019 64bit Win11 二、Qt搭建SDL Qt搭建&#xff0c;我觉得相比用VS2019来说&#xff0c;更为方便&…

密文域可逆信息隐藏安全性研究-从图像到视频

前言 随着云存储、云计算等新兴技术的兴起&#xff0c;海量的隐私信息被广泛地上传、存储到服务器上。为保证用户的隐私性&#xff0c;必须对用户的数据进行加密&#xff0c;然后再将其上传到服务器上。因此&#xff0c;密文域的可逆信息隐藏(reversible data hiding in encry…

Vue3 -Computed计算属性

前言&#xff1a; Computed属性属于Vue3中的响应式核心(与之共同说明的还有ref&#xff0c;reactive&#xff0c;watch...) 接受一个 getter 函数&#xff0c;返回一个只读的响应式 ref 对象。该 ref 通过 .value 暴露 getter 函数的返回值。它也可以接受一个带有 get 和 set…

内网-1(win工作组与域环境)

一、概述 1、工作组&#xff1a;将不同的计算机按功能(或部门)分别列入不同的工作组 (1)、查看&#xff08;windows&#xff09; 查看当前系统中所有用户组&#xff1a;打开命令行--》net localgroup查看组中用户&#xff1a;打开命令行 --》net localgroup 后接组名查看用户…

【C语言进阶】文件操作:文件的打开与文件的读写以及文本文件和二进制文件

目录 1、为什么使用文件 2、什么是文件 2.1 程序文件 2.2 数据文件 2.3 文件名 3、文件的打开和关闭 3.1文件指针 3.2文件的打开与关闭 4、文件的顺序读写 4.1 几个函数的区别 5、文件随机读写 5.1 fseek 5.2 ftell 5.3 rewind 6、文本文件和二进制文件…

APM32F003评测,基本参数,点LED

简介 该是一个基于APM32F003 32位Cortex-M0 工业级 单片机开发板。主频高达48MHz&#xff0c;AHB 总线、APB 总线&#xff0c;无需外部晶振即可运行&#xff0c;价格实惠。为专业人士、工业ODM、AIoT爱好者、DIY爱好者和创作者提供了一个可靠、低成本和高性能的平台。 这款开发…

LangChain学习圣经:从0到1精通LLM大模型应用开发的基础框架

尼恩&#xff1a;LLM大模型学习圣经PDF的起源 在40岁老架构师 尼恩的读者交流群(50)中&#xff0c;经常性的指导小伙伴们改造简历。 经过尼恩的改造之后&#xff0c;很多小伙伴拿到了一线互联网企业如得物、阿里、滴滴、极兔、有赞、希音、百度、网易、美团的面试机会&#x…

MFC3d立体按钮制作

1、本程序基于前期我的博客文章MFC用CButtonST类实现图片透明按钮(免费源码下载) 2、添加CeXDib.cpp CeXDib.h ShadeButtonST.cpp ShadeButtonST.h到项目文件夹下&#xff0c;和FileView中如图。 3、在ButtonShadeDlg.h中添加代码 #include "ShadeButtonST.h" #in…

回文串算法题

回文串是一个正着读和反着读顺序一样的字符串。"aba" 是回文串&#xff0c;"abba" 是回文串&#xff0c;"abc" 不是回文串。 回文串的题目&#xff0c;都要使用一个基本的逻辑&#xff0c;就是判断当前这个字符串是不是回文串。以 c 为例&#…

无限光年人工智能技术创新PMO负责人端煜受邀为第十三届中国PMO大会演讲嘉宾

全国PMO专业人士年度盛会 无限光年&#xff08;上海&#xff09;技术有限公司人工智能技术创新PMO负责人、原字节跳动朝夕光年PMO总监端煜先生受邀为PMO评论主办的2024第十三届中国PMO大会演讲嘉宾&#xff0c;演讲议题为“中国传统哲学在LLM企业项目管理应用中的思考与实践”。…