㈠ 1919、1921、1927、1931、1936、1937、1945、1946、1949、1956、1958、1978、2050中國歷史年代尺
1919五四運動、制
1921中共一大、
1927北伐勝利、
1931九一八、
1936國共二次合作、
1937七七事變、
1945抗日勝利、
1946解放戰爭、
1949天朝成立、
1956社會主義道路探索時期、
1958自然災害、
1978唐山大地震、
2050天朝一百零一年~~~
㈡ 編寫一日歷顯示程序。能夠顯示日歷信息,包括年份、月份、星期。能夠指定1949-2050年之間的任意年份、月份
3、編寫一日歷顯示程序(2人)
具體要求實現如下功能:
1)能夠顯示日歷信息,包括年份、月份、星期。
2)能夠指定1949-2050年之間的任意年份、月份。
3)能夠對超出范圍的數據,或者錄入的錯誤數據給出錯誤提示。
4)界面清晰,可以通過鍵盤錄入年、月,也可以通過「←」和「→」實現月份的增減,通過「↑」和「↓」實現年份的增減。
#include "time.h"
#include "stdio.h"
/*
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()為負。
};
*/
int CAL[6][7]; //存放一個月的月歷信息
char WEEK[7][10]={{"星期日"},{"星期一"},{"星期二"},{"星期三"},{"星期四"},{"星期五"},{"星期六"}};
void initData()
{ //初始化數據
int i,j;
for(i=0;i<6;i++)
for(j=0;j<7;j++)
CAL[i][j]=-1;
}
int dayNum(int y,int m)
{ //根據年份,月份,返回該月的天數
if((m==1)||(m==3)||(m==5)||(m==7)||(m==8)||(m==10)||(m==12))
return 31;
else if((m==4)||(m==6)||(m==9)||(m==11))
return 30;
else if(m==2)
{
if(((y%4==0)&&(y%100!=0))||(y%400==0))
return 29;
else
return 28;
}
else
return 0;
}
int getWeekDay(int y,int m,int d)
{
//輸入年月日,返回該天為星期幾
struct tm t;
time_t t_of_day;
int weekday;
t.tm_year=y-1900; //年
t.tm_mon=m-1; //月
t.tm_mday=d; //日
t.tm_hour=0; //時
t.tm_min=0; //分
t.tm_sec=1; //秒
t.tm_isdst=0;
t_of_day=mktime(&t); //70-1-1之後的時間
// printf(ctime(&t_of_day));
weekday=t.tm_wday;
return weekday;
}
void createCal(int y,int m)
{ //對選定月份的月歷數據表進行初始化
int w,i,j,k,d;
//k代表本月總天數,w代表本月第一天為星期幾
w=getWeekDay(y,m,1);
k=dayNum(y,m);
d=1;
for(j=w;j<7;j++,d++)
CAL[0][j]=d; //設置月歷第一行數據
for(i=1;i<6;i++) //設置第2-5行數據
for(j=0;j<7;j++,d++)
{
if(d<=k)
CAL[i][j]=d;
else
return ;
}
}
void printHead(int y,int m)
{ //列印首部:年月,以及星期一,星期二。。。。。
int i;
printf("\n");
for(i=0;i<23;i++)
printf(" ");
printf("%d年%d月\n\n",y,m);
for(i=0;i<7;i++)
printf("%8s",WEEK[i]);
printf("\n");
}
void printCal()
{ //輸出月歷內容
int i,j;
for(i=0;i<6;i++)
{
for(j=0;j<7;j++)
{
if(CAL[i][j]<1)
printf(" ");
else if(CAL[i][j]<10)
printf(" %d ",CAL[i][j]);
else
printf(" %d ",CAL[i][j]);
}
printf("\n");
}
}
void output(int y,int m)
{ //輸出某年某月的月歷內容
initData(); //初始化數據
createCal(y,m); //生成日歷
printHead(y,m); //輸出首部
printCal(); //輸出該月月歷
}
int curYear()
{ //獲取當前年份
struct tm *tmp;
time_t lt;
lt=time(NULL);
tmp=gmtime(<);
return tmp->tm_year+1900;
}
int curMonth()
{ //獲取當前月份
struct tm *tmp;
time_t lt;
lt=time(NULL);
tmp=gmtime(<);
return tmp->tm_mon+1;
}
void main()
{
int y,m,d,flag;
char c;
output(curYear(),curMonth());
} 調用就可以了
㈢ 1978年到1990年是什麼時期
1919年到1949年 新民主主義革命
1949-1952 從新民主主義時期向社會主義時期過渡
1952-1956 三大改造的完成專,社會主義制度的建立屬
1978年到1990:三步走的第一步
1990年到2000:第二步
1990年:解決溫飽
2000:國內生產總值翻一番
2050:達到中等發達國家水平
1956年到2050年左右:社會主義初級階段