ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

日期转换问题

2022-01-20 15:30:54  阅读:125  来源: 互联网

标签:转换 int 31 month 问题 日期 year yearday day


编程解决如下日期转换问题:
1任意给定某年某月某日,打印出它是这一年的第几天。
2已知某一年的第几天,计算它是这一年的几月几日。

#include<stdio.h>
#include<stdlib.h>
static int daytab[2][13]={{0,31,28,31,30,31,30,31,31,30,31,30,31},
                        {0,31,29,31,30,31,30,31,31,30,31,30,31}};
void menu();
void monthday(int year,int yearday,int *pmonth,int *pday);
int dayofyear(int year,int month,int day);
int main()
{
	 int year,month,day,yearday,choice;
	 menu();
	 scanf("%d",&choice);
	 switch(choice)
	 {
	 	 case 1:printf("please enter year,month,day:");
	 	        scanf("%d,%d,%d",&year,&month,&day);
	 	        yearday=dayofyear(year,month,day);
	 	        printf("yearday=%d\n",yearday);
	 	        break;
	     case 2:printf("please enter year,yearday");
	            scanf("%d,%d",&year,&yearday);
	            monthday(year,yearday,&month,&day);
	            printf("month=%d,day=%d\n",month,day);
	            break;
	     case 3:exit(0);
	     default:printf("input error!");
	 }	  
	 return 0;
}
void menu()
{
	 printf("1.year/month/day->yearday\n");
	 printf("2.yearday-->year/month/day\n");
	 printf("3.exit\n");
	 printf("please enter your choice:");
	 
}
void monthday(int year,int yearday,int *pmonth,int *pday)
{
	int i,leap;
	leap=((year%4==0)&&(year%100!=0))||(year%400==0);
	for(i=1;yearday>daytab[leap][i];i++)
	{
		 yearday=yearday-daytab[leap][i];
	}
	*pmonth=i;
	*pday=yearday;
}
int dayofyear(int year,int month,int day)
{
	 int i,leap;
	 leap=((year%4==0)&&(year%100!=0))||(year%400==0);
	 for(i=1;i<month;i++)
	 {
	 	 day=day+daytab[leap][i];
	 	 
	 }
	 return day;
}

标签:转换,int,31,month,问题,日期,year,yearday,day
来源: https://blog.csdn.net/weixin_45721340/article/details/122602642

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有