前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >日期判断

日期判断

作者头像
WindCoder
发布2018-09-19 18:24:20
1.3K0
发布2018-09-19 18:24:20
举报
文章被收录于专栏:WindCoderWindCoder
代码语言:javascript
复制
/*
功能:日期判断
日期:2013-06-09
*/
#include<stdio.h>
#include<stdlib.h>

int isLeapYear(int iYear);
int dayofWeek(int iYear,int iMonth,int iDay);
int weekofYear(int iYear,int iMonth, int iDay);
int main(void)
{
  int iYear,iMonth,iDay;
  printf("请输入一个日期(“年-月-日”形式):");
  scanf("%d-%d-%d",&iYear,&iMonth,&iDay);

  printf("%d年%d月%d日属于%d年的第%d个星期。n",iYear,iMonth,iDay,iYear,weekofYear(iYear,iMonth,iDay));

  system("pause");
  return 0;

}

//参数:int iYear 待判断的一个年份
//返回:int 若iYear是闰年,则返回1,否则返回0;
int isLeapYear(int iYear)
{
     if((iYear%4)&&(iYear%100)||(iYear%400))
	 {
	     return 1;
	 }
	 else
	 {
	    return 0;
	 }

}

//功能:判断一个日期是一周中的星期几
//参数:int iYear 年份
//      int iMonth 月份
//      int iDay 日期
//返回:int 返回当前日期是一周中的星期几
int dayofWeek(int iYear,int iMonth,int iDay)
{
	int i,days=0,weekDay;
	int days1[12]={31,28,31,30,31,30,31,31,30,31,30,31};
	if(0==isLeapYear(iYear))
	{
	    for(i=0;i<iMonth-1;i++)
		{
		    days=+days1[i];
		}
	     days+=iDay;
	}
	else
	{
	   if (iMonth>2)
	   {
	      for(i=0;i<iMonth-1;i++)
		 {
		     days=+days1[i];
		 }
	      days+=iDay+1;
	   }
	   else
	   {
			for(i=0;i<iMonth-1;i++)
			{
				days=+days1[i];
			}
			days+=iDay;
	   }

	}
	weekDay=((iYear-1)+(iYear-1)/4 -( iYear-1 /100 )+( iYear-1 / 400 ) + days) % 7;
	switch (weekDay)
	{     case 0: weekDay = 1;break;
          case 1: weekDay = 2;break;
	      case 2: weekDay = 3;break;
		  case 3: weekDay = 4;break;
		  case 4: weekDay = 5;break;
		  case 5: weekDay = 6;break;
		  case 6: weekDay = 7;break;
	}
}

//功能:判断一个日期是这一年中的第几个星期
//参数:int iYear 年份
//      int iMonth 月份
//      int iDay 日期
//返回:第几个星期
int weekofYear(int iYear,int iMonth, int iDay)
{
	int weekOfYear,days=0,i;
	int days1[12]={31,28,31,30,31,30,31,31,30,31,30,31};
	if(0==isLeapYear(iYear))
	{
	    for(i=0;i<iMonth-1;i++)
		{
		    days=+days1[i];
		}
	     days+=iDay;
	}
	else
	{
	   if (iMonth>2)
	   {
	      for(i=0;i<iMonth-1;i++)
		 {
		     days=+days1[i];
		 }
	      days+=iDay+1;
	   }
	   else
	   {
			for(i=0;i<iMonth-1;i++)
			{
				days=+days1[i];
			}
			days+=iDay;
	   }

	}
	weekOfYear= (int) ((days-dayofWeek(iYear,1,1)+6.3)/7)+1;
}
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2013-11-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档