當前位置:首頁 » 編程語言 » c語言輸出五天後的日期
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言輸出五天後的日期

發布時間: 2022-12-19 12:10:18

1. c語言編程:求n天後的日期

//#include"stdafx.h"//Ifthevc++6.0,withthisline.
#include"stdio.h"
#include"time.h"
structtm*SecondDay(inty,intm,intd){
structtmtm={0,0,0,d,m,y,};
time_tlt=mktime(&tm)+86400;
returnlocaltime(&lt);
}
intmain(void){
intyear,month,day,n,m[12]={31,28,31,30,31,30,31,31,30,31,30,31},i;
structtm*ptr;
while(1){
printf("InputYear,Month,Dayandn(0<n<=2000)... ");
if(scanf("%d%d%d%d",&year,&month,&day,&n),year>1900){
m[1]=28+(year%400==0||year%4==0&&year%100);
if(month>0&&month<13&&day>0&&day<=m[month-1]&&n>0&&n<=2000)
break;
}
printf("Error,redo:");
}
for(ptr=SecondDay(year-1900,month-1,day),i=1;i<n;i++)
ptr=SecondDay(ptr->tm_year,ptr->tm_mon,ptr->tm_mday);
printf("%d%d%d ",ptr->tm_year+1900,ptr->tm_mon+1,ptr->tm_mday);
return0;
}

2. 用C語言編輸入今天的日期輸出明天的日期,謝謝幫忙

我寫好了,而且用VC平台給你測試了,絕對能用,如果不行,隨你罵
裡面
閏月
的情況都考慮了,程序有點復雜,是被我寫復雜了的,畢竟是不是高手
#include<stdio.h>
void
main()
{
int
a,b,c;
printf("請輸入今天的日期(例如2008-03-27):");
scanf("%d-%d-%d",&a,&b,&c);
if(b==02
&&
c==28
&&
a%4==0)
{a=a;
b=03;
c=01;}
else
if(a%4!=0
&&
b==02
&&
c==27)
{a=a;
b=03;
c=01;}
else
if(b==12
&&
c==31)
{a=a+1;
b=01;
c=01;}
else
if((b==1
||b==3
||b==5
||b==7||b==8||b==10)&&c==31)
{a=a;
b=b+1;
c=01;}
else
if((b==4||
b==6||b==9||b==11)&&c==30)
{a=a;
b=b+1;
c=01;}
else
{a=a;
b=b;
c=c+1;}
printf("明天日期為:%d-%d-%d\n",a,b,c);
}
如果還有
什麼疑問,就加我249524324
如果測試
可以的話
,就請給我個獎,畢竟我為了寫這個程序花了30分鍾,調試了好多次
所以希望你能珍惜我的勞動成果

3. C語言編程~輸入今天的日期輸出明天的日期

因為明天的日期與月份及年度有關系,所以你的日期應該是time_t或tm類型的.如果是tm類型的,則用mktime將它轉為time_t類型,再用下面法計算一下:structtm*ptm;time_tnow=time(0);now+=24L*3600;ptm=localtime(&now);

4. 用C語言實現,輸入一個日期(**** ** **),然後輸入一個數字,代表多少天之後,然後輸出整數天後的日期

#include<stdio.h>
#include<stdlib.h>

intCheckYear(intyear)
{
if((year%4==0&&year%100!=0)||(year%400==0))
{
return1;
}
else
{
return0;
}
}

intGetMonthDays(intyear,intmonth)
{
switch(month)
{
case1:
case3:
case5:
case7:
case8:
case10:
case12:
return31;
break;
case4:
case6:
case9:
case11:
return30;
break;
case2:
if(CheckYear(year)==1)
{
return29;
}
else
{
return28;
}
break;
default:
printf("montherror!");
return0;
break;
}
}

intmain()
{
intyear,month,day;
intadd;
scanf("%d%d%d",&year,&month,&day);
scanf("%d",&add);
inti;
for(i=1;i<=add;i++)
{
day++;
if(day>GetMonthDays(year,month))
{
day=1;
month++;
if(month>12)
{
month=1;
year++;
}
}
}
printf(" %d%d%d",year,month,day);
return0;
}

5. 大佬,能不能用devc++編個c語言程序,就是輸入年月日,天數n,輸出n天後的日期,謝謝謝謝!

#include<stdio.h>
#include<stdlib.h>

intDaysInMonth[12]={31,28,31,30,31,30,31,31,30,31,30,31};

intisYear(intyear)
{
if(year%4==0||(year%100!=0&&year%400==0))
{
DaysInMonth[1]=29;
return1;
}
else
{
DaysInMonth[1]=28;
return0;
}
}

intmain()
{
intyear,month,day,n;
printf("輸入年月日(用空格間隔):");
scanf("%d%d%d",&year,&month,&day);
printf("輸入天數n:");
scanf("%d",&n);
inti;
for(i=1;i<=n;i++)
{
day++;
isYear(year);
if(day>DaysInMonth[month-1])
{
day=1;
month++;
}
if(month>12)
{
month=1;
year++;
}
}
printf("%d%d%d",year,month,day);
return0;
}

6. c語言問題 計算後續日期

修改後如下:

#include<stdio.h>
#include<stdlib.h>
intmain(intargc,char*argv[])
{
inty,m,d,N,a;
scanf("%d%d%d",&y,&m,&d);
scanf("%d",&N);
if(m==1||m==3||m==5||m==7||m==8||m==10||m==12)
{
a=31-d;
}elseif(m==4||m==6||m==9||m==11)
{
a=30-d;
}elseif(m==2)
{
if((y%4==0&&y%100!=0)||y%400==0)
{
a=29-d;
}else
{
a=28-d;
}
}
if(N<=a)
{
printf("%d%d%d",y,m,d+N);
}else
{
N=N-a;
m++;
}
for(;N>0;)
{
if(m==1||m==3||m==5||m==7||m==8||m==10||m==12)
{
N=N-31;
m++;
}elseif(m==4||m==6||m==9||m==11)
{
N=N-30;
m++;
}elseif(m==2)
{
if((y%4==0&&y%100!=0)||y%400==0)
{
N=N-29;m++;
}else
{
N-=28;
m++;
}
}elseif(m==13)
{
y++;
N-=31;
m=2;
}
}
m--;
if(m==1)
{
printf("%d.%d.%d ",y,m=12,N+31);
}elseif(m==3||m==5||m==7||m==8||m==10||m==12)
{
printf("%d.%d.%d ",y,m,N+31);
}elseif(m==4||m==6||m==9||m==11)
{
printf("%d.%d.%d ",y,m,N+30);
}elseif(m==2)
{
if((y%4==0&&y%100!=0)||y%400==0)
{
printf("%d.%d.%d ",y,m,N+29);
}else
{
printf("%d.%d.%d ",y,m,N+28);
}
}
system("PAUSE");
return0;
}

但你這個程序輸入2014 1 1 -1就會出現2014 1 0,需要改進。

7. C語言對指定日期計算出N天後是什麼日期

/*C語言對指定日期計算出N天後是什麼日期*/

#include<stdio.h>
main()
{
int year,month,day;
int leapyear=0;//閏年時使用
int daytime=0;
int sum;
static int month_date[12]={31,28,31,30,31,30,31,31,30,31,30,31};
printf("請輸入日期:(例如:2010 5 27)");
scanf("%d%d%d",&year,&month,&day);
if(year<=0||month>12||month<1)//判斷輸入是否正確
{
printf("Error!\n");
getch();
exit(0);
}
if(year%400==0||(year%4==0&&year%100!=0))//判斷是否為閏年
leapyear=1;//是就加1
if(month==2)//判斷日是否輸入正確,2月是特殊的因為分閏年和平年
{ if((month_date[month-1]+leapyear)<day||day<=0)
{
printf("Error!\n");
getch();
exit(0);
}
}
if(month!=2)//當輸入不是2月時,判斷輸入
{
if(month_date[month-1]<day||day<=0)
{
printf("Error!\n");
getch();
exit(0);
}
}
printf("\n請輸入天數:");
scanf("%d",&daytime);//輸入第N天後
if(daytime<0)
{
printf("Error!\n");
getch();
exit(0);
}
sum=daytime+day;//當前日期與N天相加
do
{
if(month==2)//判斷當月是不是二月份
month_date[month-1]+=leapyear;
if(sum>month_date[month-1])
{
sum-=month_date[month-1];
month++;//超過當月天數,加一個月
if(month==13)//當月份超過12月時,重新返到1月
{
year++;//加一年
if(year%400==0||(year%4==0&&year%100!=0))//判斷加一年後是不是閏年
leapyear=1;
else
leapyear=0;//不是閏年則為0
month=1;//因為12月的下一個月是1月
}
}
}while(sum>month_date[month-1]);//當加起來的天數少於當月的天數就停止循環
day=sum;
printf("\n第%d天後是%d %d %d",daytime,year,month,day);//輸出
getch();
}

8. 大佬,能幫忙用devc++編個c語言程序,輸入年月日,天數n,輸出n天後的年月日,謝謝謝謝!

/**
程序描述:輸入年月日,天數n,輸出n天後的年月日。
*/
#include<stdio.h>
typedefstructDate
{
intyear;
intmonth;
intday;
}Date;

intdays[]={31,28,31,30,31,30,31,31,30,31,30,31};

intIsLeapYear(intyear);
voidListDate(Datenow,intdiff);

voidmain()
{
Datenow;
intdiff;

printf("輸入日期(yyyy-mm-dd):");
scanf("%d-%d-%d",&now.year,&now.month,&now.day);
printf("輸入相隔天數:");
scanf("%d",&diff);
ListDate(now,diff);
}

/*判斷閏年*/
intIsLeapYear(intyear)
{
return((year%400==0)||(year%4==0&&year%100!=0))?1:0;
}

voidListDate(Datenow,intdiff)
{
Dated1;

/*計算diff天後的日期*/
d1.year=now.year;
d1.month=now.month;
d1.day=now.day+diff;

if(d1.day>0)
{
while(d1.day>days[d1.month-1])
{
d1.day-=days[d1.month-1]+(d1.month==2&&IsLeapYear(d1.year));
d1.month++;
if(d1.month>12)
{
d1.month=1;
d1.year++;
}
}
}
elseif(d1.day<0)
{
while(d1.day<=0)
{
d1.month--;
if(d1.month<=0)
{
d1.month=12;
d1.year--;
}
d1.day+=days[d1.month-1]+(d1.month==2&&IsLeapYear(d1.year));
}
}
printf("%d-%d-%d ",d1.year,d1.month,d1.day);
}

9. C語言一個日期加上幾天後輸出新的日期

#include <stdlib.h>
#include <time.h>
#include <stdio.h>
#include <string.h>

void AddDate(char *outDate, const char *inDate,const int inCount)
{
time_t inT,outT,countT;
struct tm tmpInDate,tmpOutDate;
char tmpStr[50];

memset(tmpStr, '\0',sizeof(tmpStr));

strncpy(tmpStr, inDate,4);
strncpy(tmpStr+5, inDate+4,2);
strncpy(tmpStr+8, inDate+6,2);
strncpy(tmpStr+11,inDate+8,2);
strncpy(tmpStr+14,inDate+10,2);
strncpy(tmpStr+17,inDate+12,2);

tmpInDate.tm_year = atoi(tmpStr)-1900;
tmpInDate.tm_mon = atoi(tmpStr+5)-1;
tmpInDate.tm_mday = atoi(tmpStr+8);
tmpInDate.tm_hour = atoi(tmpStr+11);
tmpInDate.tm_min = atoi(tmpStr+14);
tmpInDate.tm_sec = atoi(tmpStr+17);
tmpInDate.tm_isdst = -1;
inT = mktime(&tmpInDate);
countT = (time_t)inCount;
outT = inT + countT;
memcpy(&tmpOutDate,localtime(&outT),sizeof(tmpOutDate));
sprintf(outDate,"%4d%02d%02d%02d%02d%02d",tmpOutDate.tm_year+1900,
tmpOutDate.tm_mon+1,tmpOutDate.tm_mday,tmpOutDate.tm_hour,
tmpOutDate.tm_min,tmpOutDate.tm_sec);

return;
}

int main(int argc,char **argv)
{
time_t tmp_time;
struct tm *tmp_tm;
char month[20];
char outY[5]={0},outM[3]={0},outD[3]={0};
char tmpStr[20];

if(2!=argc)
{
sprintf("Usage: %s yyyymmdd+n #獲得指定日期加n天後的值,如20060831+2,20060801-3等\n\n",argv[0]);
exit(1);
}
strncpy(tmpStr, argv[1], 8);
strcpy(tmpStr+8, "000000");
tmpStr[14]='\0';
AddDate(month, tmpStr, atoi(argv[1]+8)*3600*24);
strncpy(outY, month, 4);
strncpy(outM, month+4, 2);
strncpy(outD, month+6, 2);
printf("%s%s%s",outY, outM, outD);
}