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

2024-06-02 13:52

本文主要是介绍算法题-给定一个日期,输出星期几,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

 

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

测试结果

如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.chinasem.cn/article/1024153

相关文章

SpringBoot实现MD5加盐算法的示例代码

《SpringBoot实现MD5加盐算法的示例代码》加盐算法是一种用于增强密码安全性的技术,本文主要介绍了SpringBoot实现MD5加盐算法的示例代码,文中通过示例代码介绍的非常详细,对大家的学习... 目录一、什么是加盐算法二、如何实现加盐算法2.1 加盐算法代码实现2.2 注册页面中进行密码加盐2.

Java时间轮调度算法的代码实现

《Java时间轮调度算法的代码实现》时间轮是一种高效的定时调度算法,主要用于管理延时任务或周期性任务,它通过一个环形数组(时间轮)和指针来实现,将大量定时任务分摊到固定的时间槽中,极大地降低了时间复杂... 目录1、简述2、时间轮的原理3. 时间轮的实现步骤3.1 定义时间槽3.2 定义时间轮3.3 使用时

Python使用date模块进行日期处理的终极指南

《Python使用date模块进行日期处理的终极指南》在处理与时间相关的数据时,Python的date模块是开发者最趁手的工具之一,本文将用通俗的语言,结合真实案例,带您掌握date模块的六大核心功能... 目录引言一、date模块的核心功能1.1 日期表示1.2 日期计算1.3 日期比较二、六大常用方法详

python多种数据类型输出为Excel文件

《python多种数据类型输出为Excel文件》本文主要介绍了将Python中的列表、元组、字典和集合等数据类型输出到Excel文件中,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参... 目录一.列表List二.字典dict三.集合set四.元组tuplepython中的列表、元组、字典

如何通过Golang的container/list实现LRU缓存算法

《如何通过Golang的container/list实现LRU缓存算法》文章介绍了Go语言中container/list包实现的双向链表,并探讨了如何使用链表实现LRU缓存,LRU缓存通过维护一个双向... 目录力扣:146. LRU 缓存主要结构 List 和 Element常用方法1. 初始化链表2.

Spring AI集成DeepSeek实现流式输出的操作方法

《SpringAI集成DeepSeek实现流式输出的操作方法》本文介绍了如何在SpringBoot中使用Sse(Server-SentEvents)技术实现流式输出,后端使用SpringMVC中的S... 目录一、后端代码二、前端代码三、运行项目小天有话说题外话参考资料前面一篇文章我们实现了《Spring

MySQL 日期时间格式化函数 DATE_FORMAT() 的使用示例详解

《MySQL日期时间格式化函数DATE_FORMAT()的使用示例详解》`DATE_FORMAT()`是MySQL中用于格式化日期时间的函数,本文详细介绍了其语法、格式化字符串的含义以及常见日期... 目录一、DATE_FORMAT()语法二、格式化字符串详解三、常见日期时间格式组合四、业务场景五、总结一、

Rust格式化输出方式总结

《Rust格式化输出方式总结》Rust提供了强大的格式化输出功能,通过std::fmt模块和相关的宏来实现,主要的输出宏包括println!和format!,它们支持多种格式化占位符,如{}、{:?}... 目录Rust格式化输出方式基本的格式化输出格式化占位符Format 特性总结Rust格式化输出方式

golang字符串匹配算法解读

《golang字符串匹配算法解读》文章介绍了字符串匹配算法的原理,特别是Knuth-Morris-Pratt(KMP)算法,该算法通过构建模式串的前缀表来减少匹配时的不必要的字符比较,从而提高效率,在... 目录简介KMP实现代码总结简介字符串匹配算法主要用于在一个较长的文本串中查找一个较短的字符串(称为

通俗易懂的Java常见限流算法具体实现

《通俗易懂的Java常见限流算法具体实现》:本文主要介绍Java常见限流算法具体实现的相关资料,包括漏桶算法、令牌桶算法、Nginx限流和Redis+Lua限流的实现原理和具体步骤,并比较了它们的... 目录一、漏桶算法1.漏桶算法的思想和原理2.具体实现二、令牌桶算法1.令牌桶算法流程:2.具体实现2.1