① 求c语言源代码编写程序要求1输入年月份时分秒2输入增加的分钟数,输出输入的时间及增加分钟数后的时间
#include <stdio.h>
#include <time.h>
int main()
{
int year,month,day,hour,min,sec;
int add;
time_t timep;
struct tm *p, tmt;
printf("请输入日期时间,格式为: 年年年年-月月-日日-时时-分分-秒秒\n");
scanf("%d-%d-%d-%d-%d-%d", &year,&month,&day,&hour,&min,&sec);
//year=2016;month=10;day=30;hour=8;min=20;sec=0; // 测试代码
printf("请输入增加的分钟数:\n");
scanf("%d", &add);
//add=1440+1440; //测试代码
// 打印输入的时间
printf("%4d %2d %2d %2d %2d %2d\n", year, month, day, hour, min, sec);
tmt.tm_year = year-1900;
tmt.tm_mon = month -1;
tmt.tm_mday = day;
tmt.tm_hour = hour;
tmt.tm_min = min;
tmt.tm_sec = sec;
timep = mktime(&tmt);
timep += add*60;
p = localtime(&timep);
// 打印增加分钟后的时间
printf("%4d %2d %2d %2d %2d %2d\n", p->tm_year + 1900, p->tm_mon +1, p->tm_mday, p->tm_hour, p->tm_min, p->tm_sec);
getchar();
return 0;
}
② 按时分秒的时间表示形式(即hh : mm : ss)键盘输入两个时间,计算两个时间之间相差多少小时,
首先,换算成秒。两个,HH:MM:SS,相对于00:00:00 差了HH*3600+MM*60+SS秒。如果跨了天,那要其它考虑。比如 16:13:12 和09:15:22 相差了( 16*3600+13*60+12)-(9*3600+15*60+22)秒。
然后,我们得到了25070 换成时间 25070/3600 取整。那就是6。
(25070-6*3600)/60=57.8 取整就是57分。
25070-6*3600-57*60=50 秒。
所以相差 6小时57分50秒。
别迟疑了。快开始编程吧。这样动手能力才能得到加强的哦。
③ c语言:输入秒数,将它转换,用小时,分钟,秒来表示,比如说多少秒变成几时几分几秒
#include<stdio.h>
intmain()
{
inth,m,s;
scanf("%d",&s);
h=s/3600;
m=s/60%60;
s%=60;
printf("%d:%d:%d ",h,m,s);
return0;
}
④ C语言上机题从键盘输入当前时间的时、分、秒值,输出过一秒后的时、分、秒值。
算法:时分秒为60进制,遇60进1
代码:
#include <stdio.h>
int main()
{
int h,m,s;
printf("请输入时分秒(以:分开):\n");
scanf("%d:%d:%d",&h,&m,&s);
s = s + 1;
if (s == 60) {//60秒,分进1
s = 0;
m = m + 1;
if (m == 60) {//60分,时进1
h = h + 1;
}
}
printf("下一秒为:%02d:%02d:%02d", h, m, s);
;
}
⑤ c语言 输入一个时间(年、月、日、时、分、秒),判断时间是否合法,输出下一秒的时间
#include<stdio.h>
int year = 0;
int month = 0;
int day = 0;
int hour = 0;
int minute = 0;
int second = 0;
int main()
{
void inputDate(); /*输入年-月-日 时:分:秒*/
void nextSceond(); /*计算下一秒的时间*/
int leapYear(int year); /*判断是否为闰年*/
int dayMonth(int month); /*返回每个月份对应的天数*/
inputDate();
leapYear(year);
dayMonth(month);
nextSceond();
system("PAUSE");
return 0;
}
/*函数inputDate()输入年-月-日 时:分:秒*/
void inputDate()
{
int loop;
for(loop = 0; loop < 3; loop++)
{
printf("请输入年-月-日 时:分:秒:");
scanf("%d-%d-%d %d:%d:%d", &year, &month, &day, &hour, &minute, &second);
if(month < 1 || month > 12)
{
printf(" 月份输入错误! ");
continue;
}
else if(day < 1 || day > dayMonth(month))
{
printf(" 日期输入错误! ");
continue;
}
else if(hour < 0 || hour > 23)
{
printf(" 小时输入错误! ");
continue;
}
else if(minute < 0 || minute > 59)
{
printf(" 分钟输入错误! ");
continue;
}
else if(second < 0 || second > 59)
{
printf(" 秒数输入错误! ");
continue;
}
else
{
break;
}
}
}
/*函数nextSecond()计算下一秒的时间*/
void nextSceond()
{
if(59 == second)
{
minute += 1;
second = 0;
if(60 == minute)
{
hour += 1;
minute = 0;
if(24 == hour)
{
day += 1;
hour = 0;
if(day > dayMonth(month))
{
month += 1;
day = 1;
if(13 == month)
{
year += 1;
month = 1;
}
}
}
}
}
else
{
second += 1;
}
printf("%d-%d-%d %d:%d:%d ",year, month, day, hour, minute, second);
}
/*函数leapYear(int year)判断是否为闰年*/
int leapYear(int year)
{
if(0 == (year % 4 && 0 != year % 100) || 0 == year % 400)
{
return 1;
}
else
{
return 0;
}
}
/*函数名dayMonth(int month)返回每个月份对应的天数*/
int dayMonth(int month)
{
switch(month)
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
return 31;
case 2:
if(0 == (year % 4 && 0 != year % 100) || 0 == year %400)
{
return 29;
}
else
{
return 28;
}
case 4:
case 6:
case 9:
case 11:
return 30;
}
}
请放心使用
有问题的话请追问
满意请及时采纳,谢谢
⑥ 1. C语言编程,怎么编写 时 分 秒 的程序
#include<stdio.h>
int main(){
int hour,minute,second;
printf("请输入时间:");
scanf("%d:%d:%d",&hour,&minute,&second);
printf("Time:%02d:%02d:%02d\n",hour,minute,second);
return 0;
}
⑦ 用c语言编一个时钟程序实现时分秒计时功能
#include<stdio.h>
#include<time.h>
int main()
{
time_t t1,t2;
struct tm *ptm;
char timestr[128]={'\0'};
time(&t1);
while(1)
{
time(&t2);
if(difftime(t2,t1)>=1)
{
system("cls");
ptm=localtime(&t2);
strftime(timestr,128,"%H:%M:%S",ptm);
printf("%s\n",timestr);
t1=t2;
}
}
system("PAUSE");
return 0;
}
⑧ c语言中怎么将时间相加啊,输入两组时间,时分秒用空格隔开,输出的值也用空格隔开
时间相加,判断起来比较麻烦,也容易出错,我常用的方法是用mktime先转换成秒,然后相加或者相减,再把结果转换成时间就行
⑨ 用c语言,求两个时间的分钟数
意思如下:
A时间为15:35
B时间为18:22
把A时间换算成分钟 15*60+35=935
把B时间换算成分钟 18*60+22=1102
1102-935=167 间隔167分钟