#include stdio.h
创新互联是一家集网站建设,聊城企业网站建设,聊城品牌网站建设,网站定制,聊城网站建设报价,网络营销,网络优化,聊城网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。
int main()
{
int year,month,day;//年月日
int judge,i;
int sum=0;//标记天数
int date[2][12]={
{31,28,31,30,31,30,31,31,30,31,30,31},
{31,29,31,30,31,30,31,31,30,31,30,31}};//储存闰年和非闰年每一月的天数
printf("输入年月日:");
scanf("%d %d %d",year,month,day);
judge=(year%4==0)||(year%400==0 year%100!=0);
//判断年份是不是闰年 是闰年judge就是1;否则就是0
for(i=0;imonth-1;i++)//加month之前的所有天数
sum+=date[judge][i];
sum+=day;//加当天月份的天数day
printf("它是%d年中的第%d天\n",year,sum);
return 0;
}
C语言输入年份和天数输出对应的年月日的源代码如下:
#include iostream
int day(int year, int month);
int main()
{
int year{};
int month{};
std::cout "请输入年和月(空格隔开):";
std::cin year month;
std::cout "该月天数:" day(year, month) '\n';
return 0;
}
扩展资料
1、C++ 标准库没有提供所谓的日期类型。C++ 继承了 C 语言用于日期和时间操作的结构和函数。为了使用日期和时间相关的函数和结构,需要在 C++ 程序中引用 ctime 头文件。
2、有四个与时间相关的类型:clock_t、time_t、size_t 和 tm。类型 clock_t、size_t 和 time_t 能够把系统时间和日期表示为某种整数。
C语言中读取系统时间的函数为time(),其函数原型为:
#include time.h
time_t time( time_t * ) ;
time_t就是long,函数返回从1970年1月1日(MFC是1899年12月31日)0时0分0秒,到现在的的秒数。可以调用ctime()函数进行时间转换输出:
char * ctime(const time_t *timer);
将日历时间转换成本地时间,按年月日格式,进行输出,如:
Wed Sep 23 08:43:03 2015
C语言还提供了将秒数转换成相应的时间结构的函数:
struct tm * gmtime(const time_t *timer); //将日历时间转化为世界标准时间(即格林尼治时间)
struct tm * localtime(const time_t * timer); //将日历时间转化为本地时间
将通过time()函数返回的值,转换成时间结构struct tm :
struct tm {
int tm_sec; /* 秒 – 取值区间为[0,59] */
int tm_min; /* 分 - 取值区间为[0,59] */
int tm_hour; /* 时 - 取值区间为[0,23] */
int tm_mday; /* 一个月中的日期 - 取值区间为[1,31] */
int tm_mon; /* 月份(从一月开始,0代表一月) - 取值区间为[0,11] */
int tm_year; /* 年份,其值等于实际年份减去1900 */
int tm_wday; /* 星期 – 取值区间为[0,6],其中0代表星期天,1代表星期一,以此类推 */
int tm_yday; /* 从每年的1月1日开始的天数 – 取值区间为[0,365],其中0代表1月1日,1代表1月2日,以此类推 */
int tm_isdst; /* 夏令时标识符,实行夏令时的时候,tm_isdst为正。不实行夏令时的进候,tm_isdst为0;不了解情况时,tm_isdst()为负。*/
};
编程者可以根据程序功能的情况,灵活的进行日期的读取与输出了。
例如:
#includetime.h
main()
{
time_t timep;
struct tm *p;
time (timep);
p=gmtime(timep);
printf("%d\n",p-tm_sec); /*获取当前秒*/
printf("%d\n",p-tm_min); /*获取当前分*/
printf("%d\n",8+p-tm_hour);/*获取当前时,这里获取西方的时间,刚好相差八个小时*/
printf("%d\n",p-tm_mday);/*获取当前月份日数,范围是1-31*/
printf("%d\n",1+p-tm_mon);/*获取当前月份,范围是0-11,所以要加1*/
printf("%d\n",1900+p-tm_year);/*获取当前年份,从1900开始,所以要加1900*/
printf("%d\n",p-tm_yday); /*从今年1月1日算起至今的天数,范围为0-365*/
}
代码如下:
#include iostream
using namespace std;
int leap_year(int n)
{
if(n%400==0||(n%4==0 n%100!=0))
return 1;
else
return 0;
}
int main()
{
int year,month,day;
int dayCount=0,i;
int mon[]={31,28,31,30,31,30,31,31,30,31,30,31};
cout"请输入当前的年,月,日: ";
cinyearmonthday;
for(i=0;imonth-1;i++)
dayCount+=mon[i];
if(month2)
dayCount+=day+leap_year(year);
else
dayCount+=day;
cout"该日是该年的第几天: "dayCountendl;
return 0;
}