多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > php開源 > 綜合技術 > 日期模塊的實現

日期模塊的實現

來源:程序員人生   發布時間:2015-01-19 08:17:41 閱讀次數:3659次
#include "date.h" /* 判斷是不是是閏年,函數放回為1表示是閏年,函數返回為0為非閏年 */ UINT32 Is_Leap_Year( UINT32 u32_year ) { UINT32 u32_Leap = 0u, u32_day = 0u; /* 能被4整除并且不能被100整除,或能被400 */ if (((0u == (u32_year % 4u)) && ((u32_year % 100u) != 0u)) || (( u32_year % 400u) == 0u)) { /* OSM_Printf是閏年 */ u32_Leap = 1u; u32_day = 366u; } else { /* 不是閏年 */ u32_Leap = 0u; u32_day = 365u; } return u32_Leap; } /* 2、輸入1個日期如:20110415,判斷是星期幾 */ 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 < 1900u)) { (void)OSM_Printf("輸入有誤的數據"); } else { if ( 1900U == year_u32 ) { u32_j = (days + day_u32) % 7u; } else { for ( i32i = 1900u ; i32i < year_u32; i32i++) { year_flag = Is_Leap_Year(i32i); if ( 1u == year_flag) { days += 366u; } else { days += 365u; } } for ( i32i = 0u; i32i < (mouth_u32 - 1u); i32i++) { days += MOUTH[i32i]; } u32_j = (days + day_u32) % 7u; } switch(u32_j) { case 0u: (void)OSM_Printf("星期日 "); break; case 1u: (void)OSM_Printf("星期1 "); break; case 2u: (void)OSM_Printf("星期2 "); break; case 3u: (void)OSM_Printf("星期3 "); break; case 4u: (void)OSM_Printf("星期4 "); break; case 5u: (void)OSM_Printf("星期5 "); break; case 6u: (void)OSM_Printf("星期6 "); break; default: break; } } return 0u; } /* 3、兩個指定的日期間相隔多少天,如:20110415距離19880906相隔多少天 */ /* 思路:分別求出兩個日期距離1900年1月1日的天數,然后求出連個之間的差值 */ /* 求出1個日期1990年以后的包括1990年與1990年1月1日的距離 */ UINT32 Distance( UINT32 year_u32, UINT32 mouth_u32, UINT32 day_u32 ) { UINT32 distance_to_u32 = 0u; UINT32 i32i = 0u; UINT32 year_flag = 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 < 1900u)) { (void)OSM_Printf("輸入有誤的數據"); } else { if ( 1900u == year_u32 ) { if ( 1u != mouth_u32 ) { for ( i32i = 0u; i32i < (mouth_u32 - 1u); i32i++) { distance_to_u32 += MOUTH[i32i]; } } distance_to_u32 += day_u32; } else { for ( i32i = 1900u ; i32i < year_u32; i32i++) { year_flag = Is_Leap_Year(i32i); if ( 1u == year_flag) { distance_to_u32 += 366u; } else { distance_to_u32 += 365u; } } for ( i32i = 0u; i32i < (mouth_u32 - 1u); i32i++) { distance_to_u32 += MOUTH[i32i]; } } } return distance_to_u32; } /* 求出兩個日期之間的距離 */ UINT32 Absolue_distance( UINT32 year1_u32, UINT32 mouth1_u32, UINT32 day1_u32, UINT32 year2_u32, UINT32 mouth2_u32, UINT32 day2_u32 ) { UINT32 absolue_distance = 0u; UINT32 distance1 = 0u; UINT32 distance2 = 0u; distance1 = Distance(year1_u32, mouth1_u32, day1_u32); distance2 = Distance(year2_u32, mouth2_u32, day2_u32); if ( distance1 > distance2) { absolue_distance = distance1 - distance2; } else { absolue_distance = distance2 - distance1; } (void)OSM_Printf("%d",absolue_distance); return absolue_distance; } /* 4、實現日期的格式化輸出方式如YYYYMMDD, YYMMDD */ UINT32 Formatout1( UINT32 year_u32, UINT32 mouth_u32, UINT32 day_u32 ) { if((NULL != year_u32) || (NULL != mouth_u32) || (NULL != day_u32)) { (void)OSM_Printf("YYYYMMDD的情勢:%04d%02d%02d ",year_u32,mouth_u32,day_u32); (void)OSM_Printf("YYMMDD的情勢:%02d%02d%02d ",(year_u32 % 100U),mouth_u32,day_u32); } else { (void)OSM_Printf("輸入有誤"); } return 0u; }

主函數


#include "date.h" UINT32 main(void) { UINT32 u32_year1 = 0u; UINT32 u32_year2 = 0u; UINT32 u32_mouth1 = 0u; UINT32 u32_mouth2 = 0u; UINT32 u32_day1 = 0u; UINT32 u32_day2 = 0u; UINT32 flag = 0u; UINT32 distance_abs = 0u; UINT32 key = 0u; (void)OSM_Printf("~~~~~~~~~~~~~~~~~~實戰4~~~~~~~~~~~~~~~~~~~~~ "); (void)OSM_Printf("~~~~~~~~~~~~~~~~~功能菜單~~~~~~~~~~~~~~~~~~~~ "); (void)OSM_Printf("~~~~~~~~~~~~~~~~~功能菜單~~~~~~~~~~~~~~~~~~~~ "); (void)OSM_Printf("~~~~~~~~~~~~~~~~~1、閏年判斷~~~~~~~~~~~~~~~~~ "); (void)OSM_Printf("~~~~~~~~~~~~~~~~~2、星期判斷~~~~~~~~~~~~~~~~~ "); (void)OSM_Printf("~~~~~~~~~~~~~~~~~3、日期間隔~~~~~~~~~~~~~~~~~ "); (void)OSM_Printf("~~~~~~~~~~~~~~~~~4、格式輸出~~~~~~~~~~~~~~~~~ "); (void)OSM_Printf("~~~~~~~~~~~~~~~~~輸入相應的數字~~~~~~~~~~~~~~ "); (void)OSM_Scanf("%d", &key); if ( key < 1 || key > 4) { (void)OSM_Printf("輸入毛病了!"); } switch (key) { case 1u: (void)OSM_Printf("輸入年份 "); (void)OSM_Scanf("%d", &u32_year1); flag = Is_Leap_Year(u32_year1); if ( 1u == flag) { (void)OSM_Printf("是閏年 "); } if ( 0u == flag) { (void)OSM_Printf("不是閏年 "); } break; case 2u: (void)OSM_Printf("請輸入年月日: "); (void)OSM_Scanf("%4d%2d%2d",&u32_year1, &u32_mouth1, &u32_day1); (void)Week(u32_year1, u32_mouth1, u32_day1); break; case 3u: (void)OSM_Printf("請輸入第1個日期: "); (void)OSM_Scanf("%4d%2d%2d",&u32_year1, &u32_mouth1, &u32_day1); (void)OSM_Printf("請輸入第2個日期: "); (void)OSM_Scanf("%4d%2d%2d",&u32_year2, &u32_mouth2, &u32_day2); (void)Absolue_distance( u32_year1, u32_mouth1, u32_day1, u32_year2, u32_mouth2, u32_day2); break; case 4u: (void)OSM_Printf("請輸入年月日: "); (void)OSM_Scanf("%4d%2d%2d",&u32_year1, &u32_mouth1, &u32_day1); (void)Formatout1(u32_year1, u32_mouth1, u32_day1); break; default: break; } return 0u; }


生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------

上一篇 正則表達式

下一篇 jQuery插件大全

分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 特级a欧美做爰片毛片 | 手机在线视频观看 | 中文字幕第一页在线 | 国产片免费| 欧美xxxx喷潮| 日韩精品一区二区三区毛片 | 亚洲成人h| 欧美午夜在线观看理论片 | 成人亚洲在线观看 | 全部无卡免费的毛片在线看 | 中文字幕a∨在线乱码免费看 | 日韩欧美亚洲一区 | 欧美一区二区三区在线播放 | 亚洲区欧美区 | 国产精品视频白浆免费视频 | 精品视频亚洲 | 欧美亚洲国产精品久久高清 | 男女同房视频免费爽爽 | 秋霞午夜视频在线观看 | 一级毛片a女人刺激视频免费 | 久久精品18 | 亚洲精品色一区二区三区 | 亚洲精品高清中文字幕 | 亚洲一级片在线播放 | 国产第一页亚洲 | 在线一区观看 | 成人无高清96免费 | 高清亚洲 | 狠狠的撞进去嗯啊h女强男视频 | 国产欧美久久久另类精品 | 日本特黄高清免费大片爽 | 亚洲成年人免费网站 | 成人免费视频网 | 日本最新在线 | 欧美巨大xxxx做受中文字幕 | 三级视频网 | 欧美亚洲另类久久综合 | 午夜男人网 | freee性欧美| 国产成人久久精品推最新 | 国产成人精品曰本亚洲 |