给出日期输出是星期几

UINT32 i_32u = 1990u, j_u32 = 0u, year_flag = 0u, year_day_u32 = 0u, sum_day_u32 = 0u, weekday_u32 = 0u;

	for ( i_32u = 1990u; i_32u <= year_u32; i_32u++)
	{
		year_flag = Is_Leap_Year(year_u32);
		if ( 1u == year_flag )
		{
			year_day_u32 = 366u;
		}
		else
		{
			year_day_u32 = 365u;
		}

		switch (mouth_u32 - 1u)
		{
			case 1u:
				sum_day_u32 += 31u;
				break;
			case 2u:
				sum_day_u32 += 31u + 28u + year_flag;
				break;
			case 3u:
				sum_day_u32 += 31u + 28u + year_flag + 31u;
				break;
			case 4u:
				sum_day_u32 += 31u + 28u + year_flag + 31u + 30u;
				break;
			case 5u:
				sum_day_u32 += 31u + 28u + year_flag + 31u + 30u + 31u;
				break;
			case 6u:
				sum_day_u32 += 31u + 28u + year_flag + 31u + 30u + 31u + 30u;
				break;
			case 7u:
				sum_day_u32 += 31u + 28u + year_flag + 31u + 30u + 31u + 30u + 31u;
				break;
			case 8u:
				sum_day_u32 += 31u + 28u + year_flag + 31u + 30u + 31u + 30u + 31u + 31u;
				break;
			case 9u:
				sum_day_u32 += 31u + 28u + year_flag + 31u + 30u + 31u + 30u + 31u + 31u + 30u;
				break;
			case 10u:
				sum_day_u32 += 31u + 28u + year_flag + 31u + 30u + 31u + 30u + 31u + 31u + 30u + 31u;
				break;
			case 11u:
				sum_day_u32 += 31u + 28u + year_flag + 31u + 30u + 31u + 30u + 31u + 31u + 30u + 31u + 30u;
				break;
			default:
				break;
		}
	}
	sum_day_u32 += day_u32;
	weekday_u32 = sum_day_u32 % 7u + 3;
	if (weekday_u32 != 0u)
	{
		(void)OSM_Printf("%d年%d月%d日是星期%d\n", year_u32, mouth_u32, day_u32, weekday_u32);
	}
	else
	{
		(void)OSM_Printf("%d年%d月%d日是星期天\n", year_u32, mouth_u32, day_u32);
	}*/
}

这个代码太水了 ,之后又想了一种办法,而且这样做的话会出现的问题就是不能正确输出争正确的日期的日期,

于是就想到了1990这个好数字,应为1990年1月1日搞好就是星期一

所以整理了一下代码写出了更好的一个函数

UINT32 Week(
	   UINT32 year_u32,
	   UINT32 mouth_u32,
	   UINT32 day_u32
	   )

{
	UINT32 day_code = 0u;
	UINT32 i32i = 0u;
	UINT32 u32_j = 0u;
	UINT32 year_flag = 0u;
	UINT32 days = 0u;
	UINT32 i32_sum = 0u;
	UINT32 MOUTH[12] = {30u, 28u, 31u, 30u, 31u, 30u, 31u, 31u, 30u, 31u, 30u, 31u};

	if ( (mouth_u32 < 1u) || (mouth_u32 > 12u) || (day_u32 > 31u) || (year_u32 < 1990u))
	{
		(void)OSM_Printf("输入有误的数据");
	}
	else
	{
		for ( i32i = 1990u ; i32i < year_u32; i32i++)
		{
			year_flag = Is_Leap_Year(year_u32);
			if ( 1u == year_flag)
			{
				days += 366u;
			}
			else
			{
				days += 365u;
			}
		}
		for ( i32i = 0u; i32i < (mouth_u32 - 1u); i32i++)
		{
			days += MOUTH[i32i];
		}
		u32_j = days % 7u;
		switch(u32_j)
		{
			case 0u:
				(void)OSM_Printf("星期日\n");
				break;
			case 1u:
				(void)OSM_Printf("星期一\n");
				break;
			case 2u:
				(void)OSM_Printf("星期二\n");
				break;
			case 3u:
				(void)OSM_Printf("星期三\n");
				break;
			case 4u:
				(void)OSM_Printf("星期四\n");
				break;
			case 5u:
				(void)OSM_Printf("星期五\n");
				break;
			case 6u:
				(void)OSM_Printf("星期六\n");
				break;
			default:
				break;
		}
	}
	return 0u;
}

这样有一个基准点写出来就好看一些

时间: 2024-10-21 04:21:59

给出日期输出是星期几的相关文章

sql的各种日期输出

1. 当前系统日期.时间select getdate() 2. dateadd 在向指定日期加上一段时间的基础上,返回新的 datetime 值例如:向日期加上2天select dateadd(day,2,'2004-10-15') --返回:2004-10-17 00:00:00.000 3. datediff 返回跨两个指定日期的日期和时间边界数.select datediff(day,'2004-09-01','2004-09-18') --返回:17 4. datepart 返回代表指定

js 简单的浏览器弹出框输出。

<!DOCTYPE html><html><head> <title></title> <meta charset="utf-8"> <script type="text/javascript"> function Dj(){ alert('傻逼'); } </script> <style type="text/css"> .a{ widt

原生js日期时间插件鼠标点击文本框弹出日期时间表格选择日期时间

原文出处 (这是我从互联网上搜来的,感觉能满足各方面的需求.个人感觉挺不错的,所以后期修改了一下向大家推荐!) 效果图: html代码: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org

算出日期对应的是周几

>>> 1-场景:输入日期,算出日期那天是周几. 2-直接上代码~ ------------------------------------------------------ 如果哪位朋友有更好的方法,期待交流推荐~ ------------------------------------------------------ 个人微信公众订阅号:IT知更鸟 (欢迎关注~) 原文地址:https://www.cnblogs.com/itRobins-wx/p/8676420.html

用SimpleDateFormat求出哪天是星期几,如2008-11-11

题目5: 巧妙利用SimpleDateFormat求出: 2008-11-11是星期几?(视频下载) (全部书籍) import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.*;public class Test {    public static void main(String[] args) {        SimpleDateFormat myFormatter = new S

用C++编一程序,先输出一行sun mon tue wed thu fri fri,接着使用右对齐打印出日期,像日历那样

先输出一行sun mon tue wed thu fri fri,再提醒用户输入一个起始日期和终止日期,然后输出结果. #include<iostream> #include<iomanip> //要设置域宽,使用setw函数,所以要使用iomanip头文件 using namespace std; int main(){ int day, stop, i, j, tian; cout << "Enter the number of day and stop:

输入中文日期输出对应的数字格式的日期

案例:编写一个函数进行日期转换,将输入的中文日期转换为阿拉伯数字日期 比如:二零一二年十二月月二十一日要转换为2012-12-21.(处理"十" 的问题:1.*月十日:2.*月十三日:3.*月二十三日:4.*月三十日:) 四中情况对"十"的不同翻译.1→10:2→1:3→不翻译:4→0[年部分不 可能出现'十',都出现在了月与日部分.] 测试数据:二零一二年十二月二十一日(2012年12月21日).二零零九年七 月九日.二零一零年十月二十四日.二零一零年十月二十日

更改bootstrap-datetimepicker弹出日期选择框只能在下方的限制

城市监控的项目,网页调用监控摄像头,并需要replay的日期和时间选择calendar.找了半天,找到一个好东东~~~~bootstrap-datetimepicker, UI也很有型的范,就用它吧~~, 一切顺利,就是这个calendar的弹出框只能在下方,而我需要嵌套在摄像头监控屏幕下的工具条上,如果弹出框在下方就太离谱了,最后决定改,哈就成就今天这个calendar啦,自我感觉效果不错,晒出来装一下B~~~~哈 更改的bootstrap-datetimepicker.js /** * @l

java获取当月天数,指定年月的天数,指定日期获取对应星期 .

1 package com.example.administrator.dayofmonth; 2 3 import java.text.SimpleDateFormat; 4 import java.util.Calendar; 5 import java.util.Date; 6 7 /** 8 * Created by 火龙裸先生 on 2017/4/11 0011. 9 */ 10 11 public class Number_Of_Days { 12 13 /** 14 * 获取当月的