请给我500行左右的C语言源代码。
你可以加减时间。
因为我是在linux下运行,然后去窗口,格式会有点乱。原谅我!!!
代码也没有优化。
# include & ltstdio.h & gt
# include & ltstdlib.h & gt
typedef结构时间
{
int年;
int月;
int日;
int小时;
int分钟;
int秒;
} ST _ TIME
ST_TIME日期;
void add _ sec(int secs);
void add_minute(int分钟);
void add _ hour(int hours);
void add _ day(int days);
int maxday(int leap,int month);
void add _ month(int months);
void add _ year(int years);
void sub_sec(整数秒);
void sub_minute(int分钟);
void sub_hour(整数小时);
void sub_day(int天);
void sub_month(整数月);
无效子年(整数年);
void sum(无效);
void sub(无效);
void init _ system(void);
int add _ number
int main(int argc,char *argv[])
{
char数组[20];
char会徽;
init _ system();
printf("按'+'或'-'来控制。\ n ");
scanf("%c ",& amp会徽);
开关(标志)
{
大小写“+”:
{
sum();
打破;
}
大小写'-':
{
sub();
打破;
}
}
sprintf(array," %d-%02d-%02d %02d:%02d:%02d ",date.year,date.month
日期.日、日期.小时、日期.分钟、日期.秒);
printf("%s\n ",array);
返回0;
}
void init_system(void)
{
char string[20];
char * p;
p = str
printf("输入日期:\ n ");
printf("确保您的输入是这样的:2008 12 12 12 12 12 12 \ n ");
gets(str);
date . year = atoi(p);
date . month = atoi(p+5);
date . day = atoi(p+8);
date . hour = atoi(p+11);
date . minute = atoi(p+14);
date . sec = atoi(p+17);
}
无效总和(无效)
{
int lab
printf("请选择选项:\ n ");
printf("1:添加秒;\ n ");
printf("2:添加会议记录;\ n ");
printf("3:添加小时;\ n ");
printf("4:添加天数;\ n ");
printf("5:添加月份;\ n ");
printf("6:添加年份;\ n ");
while (getchar()!= ' \ n ');
scanf("%d ",& amp实验室);
开关(实验室)
{
案例1:
{
printf("输入增加的秒数:");
scanf("%d ",& ampadd _ number);
add _ sec(add _ number);
打破;
}
案例二:
{
printf("输入增加的分钟数:");
scanf("%d ",& ampadd _ number);
add _ minute(add _ number);
打破;
}
案例三:
{
printf("输入增加的小时数:");
scanf("%d ",& ampadd _ number);
add _ hour(add _ number);
打破;
}
案例4:
{
printf("输入增加的天数:");
scanf("%d ",& ampadd _ number);
add _ day(add _ number);
打破;
}
案例5:
{
printf("输入增加的月份:");
scanf("%d ",& ampadd _ number);
add _ month(add _ number);
打破;
}
案例6:
{
printf("输入增加的年限:");
scanf("%d ",& ampadd _ number);
add _ year(add _ number);
打破;
}
}
}
无效接头(无效)
{
int lab
printf("请选择选项:\ n ");
printf("1:减少秒数;\ n ");
printf("2:减少分钟数;\ n ");
printf("3:减少小时数;\ n ");
printf("4:减少天数;\ n ");
printf("5:减少月份;\ n ");
printf("6:减少年限;\ n ");
scanf("%d ",& amp实验室);
开关(实验室)
{
案例1:
{
printf("输入减少的秒数:");
scanf("%d ",& ampadd _ number);
sub _ sec(add _ number);
打破;
}
案例二:
{
printf("输入减少的分钟数:");
scanf("%d ",& ampadd _ number);
sub _ minute(add _ number);
打破;
}
案例三:
{
printf("输入减少的小时数:");
scanf("%d ",& ampadd _ number);
sub _ hour(add _ number);
打破;
}
案例4:
{
printf("输入减少的天数:");
scanf("%d ",& ampadd _ number);
sub_day(添加_编号);
打破;
}
案例5:
{
printf("输入减少的月份:");
scanf("%d ",& ampadd _ number);
子月(添加编号);
打破;
}
案例6:
{
printf("输入增加的年限:");
scanf("%d ",& ampadd _ number);
子年(加数);
打破;
}
}
}
void add_sec(整数秒)
{
date . sec = date . sec+secs;
while(date . sec & gt;= 60)
{
add _ minute(1);
date . sec = date . sec-60;
}
}
void add_minute(整数分钟)
{
date.minute = date.minute +分钟;
while(date . minute & gt;= 60)
{
add _ hour(1);
date . minute = date . minute-60;
}
}
void add_hour(整数小时)
{
date . hour = date . hour+hours;
while(date . hour & gt;= 24)
{
add _ day(1);
date . hour = date . hour-24;
}
}
void add_day(整数天)
{
int leap
date.day =天数+date . day;
/****************************************
*功能:判断是否是闰年*
****************************************/
if((date . year % 4 = = 0 & amp;& amp日期.年份%100!= 0) ||(日期.年份%400 == 0))
{
leap = 1;/*如果是闰年,闰年的值是1*/
}
其他
{
闰= 0;/*如果不是,leap的值为0 */
}
while(date . day & gt;maxday(闰,日期.月份))
{
if((date . year % 4 = = 0 & amp;& amp日期.年份%100!= 0) ||(日期.年份%400 == 0))
{
leap = 1;/*如果是闰年,闰年的值是1*/
}
其他
{
闰= 0;/*如果不是,leap的值为0 */
}
date.day = date.day - maxday(闰,date . month);
add _ month(1);
}
}
void add_month(int months)
{
int leap
date . month = date . month+months;
while(date . month & gt;12)
{
date . month = date . month-12;
add _ year(1);
}
if((date . year % 4 = = 0 & amp;& amp日期.年份%100!= 0) ||(日期.年份%400 == 0))
{
leap = 1;/*如果是闰年,闰年的值是1*/
}
其他
{
闰= 0;/*如果不是,leap的值为0 */
}
if(leap = = 1 & amp;& ampdate.month = = 2 & amp& ampdate.day & gt=29)
{
date.day = 29
}
else if(leap = = 0 & amp;& ampdate.month = = 2 & amp& ampdate.day & gt=28)
{
date.day = 28
}
}
void add_year(整数年)
{
int leap
date.year = date.year +年;
if((date . year % 4 = = 0 & amp;& amp日期.年份%100!= 0) ||(日期.年份%400 == 0))
{
leap = 1;/*如果是闰年,闰年的值是1*/
}
其他
{
闰= 0;/*如果不是,leap的值为0 */
}
if(leap = = 1 & amp;& ampdate.month = = 2 & amp& ampdate.day & gt=29)
{
date . month = 2;
date.day = 29
}
else if(leap = = 0 & amp;& ampdate.month = = 2 & amp& ampdate.day & gt=28)
{
date . month = 2;
date.day = 28
}
}
void sub_sec(整数秒)
{
date . sec = date . sec-secs;
while(0 & gt;日期.秒)
{
sub _ minute(1);
date . sec = date . sec+60;
}
}
void sub_minute(整数分钟)
{
date . minute = date . minute-minutes;
while(0 & gt;日期.分钟)
{
sub _ hour(1);
date . minute = date . minute+60;
}
}
void sub_hour(整数小时)
{
date . hour = date . hour-hours;
while(0 & gt;日期.小时)
{
sub _ day(1);
date . hour = date . hour+24;
}
}
void sub_day(整数天)
{
int leap
日期.日=日期.日-日;
/****************************************
*功能:判断是否是闰年*
****************************************/
if((date . year % 4 = = 0 & amp;& amp日期.年份%100!= 0) ||(日期.年份%400 == 0))
{
leap = 1;/*如果是闰年,闰年的值是1*/
}
其他
{
闰= 0;/*如果不是,leap的值为0 */
}
while(0 & gt;=日期.日)
{
if((date . year % 4 = = 0 & amp;& amp日期.年份%100!= 0) ||(日期.年份%400 == 0))
{
leap = 1;/*如果是闰年,闰年的值是1*/
}
其他
{
闰= 0;/*如果不是,leap的值为0 */
}
date.day = date.day + maxday(闰,date . month-1);
子_月(1);
}
}
void子月(整数月)
{
int leap
date.month = date.month -月;
while(0 & gt;=日期.月份)
{
date . month = date . month+12;
子年(1);
}
if((date . year % 4 = = 0 & amp;& amp日期.年份%100!= 0) ||(日期.年份%400 == 0))
{
leap = 1;/*如果是闰年,闰年的值是1*/
}
其他
{
闰= 0;/*如果不是,leap的值为0 */
}
if(leap = = 1 & amp;& ampdate.month = = 2 & amp& ampdate.day & gt=29)
{
date.day = 29
}
else if(leap = = 0 & amp;& ampdate.month = = 2 & amp& ampdate.day & gt=28)
{
date.day = 28
}
}
无效子年(整数年)
{
int leap
日期.年=日期.年-年;
if((date . year % 4 = = 0 & amp;& amp日期.年份%100!= 0) ||(日期.年份%400 == 0))
{
leap = 1;/*如果是闰年,闰年的值是1*/
}
其他
{
闰= 0;/*如果不是,leap的值为0 */
}
if(leap = = 1 & amp;& ampdate.month = = 2 & amp& ampdate.day & gt=29)
{
date . month = 2;
date.day = 29
}
else if(leap = = 0 & amp;& ampdate.month = = 2 & amp& ampdate.day & gt=28)
{
date . month = 2;
date.day = 28
}
}
int maxday(int闰,int月)
{
int max _ day/*用于返回本月的最大值*/
开关(月)
{
案例4:
{
max _ day = 30
打破;
}
案例6:
{
max _ day = 30
打破;
}
案例9:
{
max _ day = 30
打破;
}
案例11:
{
max _ day = 30
打破;
}
案例二:
{
if (leap == 1)
{
max _ day = 29
打破;
}
其他
{
max _ day = 28
打破;
}
}
默认:max _ day = 31;
}
返回max _ day
我这里还有很多。如果你想要他们,请联系我,电话121779988 ` ` ` ` ` ` ``。
只是我也是菜鸟。