1. 程式人生 > 遊戲資訊 >2022年4月新遊發售內容盤點

2022年4月新遊發售內容盤點

若已知當前年月日,要計算過了n天后天的年月日,程式碼如下:

//程式碼是當前2022年4月8日, 過100天后的年月日

#include<stdio.h>
static int M[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
void Data()
{
int y=2022;
int m=4;
int d=8;
int i;
for(i=1;i<101;i++) //i<101 實際上是過了100天
{
if(y%400==0||((y%100!=0)&&y%4==0))
M[2]=29;
else
M[2]=28; //記得恢復M[2]=28;
d++;
if(d>M[m])
{
d=d-M[m]; //這兩行不能顛倒
m++;
}
if(m>12)
{
m=m-12;
y++;
}
}

printf("%d %d %d",y,m,d);
}
int main()
{
Data();
}

 

若現在已知兩個年月日,要求這兩個年月日之間相隔多少天呢?比如現在是2022年4月8日,2022年7月6日放暑假,這中間要過多少天?

只需要改變for迴圈的終止條件,和初始條件即可即可:

#include<stdio.h>
static int M[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
void Data()
{
int y=2022;
int m=4;
int d=8;
int i;
for(i=0;y!=2022||m!=7||d!=6;i++)  //i的初始值為0,因為不算今天
{
if(y%400==0||((y%100!=0)&&y%4==0))
M[2]=29;
else
M[2]=28; //記得恢復M[2]=28;
d++;
if(d>M[m])
{
d=d-M[m]; //這兩行不能顛倒
m++;
}
if(m>12)
{
m=m-12;
y++;
}
}
printf("%d %d %d\n",y,m,d);
printf("過了%d天",i);
}
int main()
{
Data();
}