请给我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 ` ` ` ` ` ` ``。

只是我也是菜鸟。