1. c语言时间,怎么把time_t类型的时间,转化成年、月、日、时、分、秒呢
可以使用gmtime函数或localtime函数将time_t类型的时间日期转换为struct tm类型(年、月、日、时、分、秒)。
使用time函数返回的是一个long值,该值对用户的意义不大,一般不能根据其值确定具体的年、月、日等数据。gmtime函数可以方便的对time_t类型数据进行转换,将其转换为tm结构的数据方便数据阅读。gmtime函数的原型如下:struct tm *gmtime(time_t *timep);localtime函数的原型如下:struct tm *localtime(time_t *timep);将参数timep所指的time_t类型信息转换成实际所使用的时间日期表示方法,将结果返回到结构tm结构类型的变量。gmtime函数用来存放实际日期时间的结构变量是静态分配的,每次调用gmtime函数都将重写该结构变量。如果希望保存结构变量中的内容,必须将其复制到tm结构的另一个变量中。gmtime函数与localtime函数的区别:gmtime函数返回的时间日期未经时区转换,是UTC时间(又称为世界时间,即格林尼治时间)。localtime函数返回当前时区的时间。
转换日期时间表示形式time_t类型转换为struct tm类型示例:
#include <stdio.h>
#include <time.h>
int main()
{
char *wday[]={"Sun","Mon","Tue","Wed","Thu","Fri","Sat"};/*指针字符数组*/ time_t t;
struct tm *p;
t=time(NULL);/*获取从1970年1月1日零时到现在的秒数,保存到变量t中*/ p=gmtime(&t); /*变量t的值转换为实际日期时间的表示格式*/
printf("%d年%02d月%02d日",(1900+p->tm_year), (1+p->tm_mon),p->tm_mday);
printf(" %s ", wday[p->tm_wday]);
printf("%02d:%02d:%02d\n", p->tm_hour, p->tm_min, p->tm_sec);
return 0;
}
注意:p=gmtime(&t);此行若改为p=localtime(&t);则返回当前时区的时间。
2. C语言转换日期的表示形式
#include <stdio.h>
#include <string.h>
int main()
{int month,b,c;
scanf("%d/%d/%d",&month,&b,&c);
switch(month)
{
case 1:printf("Jan,%d,%d\n",b,c);
break;
case 2:printf("Feb,%d,%d\n",b,c);
break;
case 3:printf("Mar,%d,%d\n",b,c);
break;
case 4:printf("Apr,%d,%d\n",b,c);
break;
case 5:printf("May,%d,%d\n",b,c);
break;
case 6:printf("Jun,%d,%d\n",b,c);
break;
case 7:printf("Jul,%d,%d\n",b,c);
break;
case 8:printf("Aug,%d,%d\n",b,c);
break;
case 9:printf("Sep,%d,%d\n",b,c);
break;
case 10:printf("Oct,%d,%d\n",b,c);
break;
case 11:printf("Nov,%d,%d\n",b,c);
break;
case 12:printf("Dec,%d,%d\n",b,c);
break;
default:printf("Data Error\n");
}
return 0;
}
3. C语言求助:时间格式转换
#include
<stdio.h>
int
main()
{
int
h,m,s;
while(scanf("%d:%d:%d",&h,&m,&s))
{
if(h!=12)
{
h=h%12;
}
printf("PM:%02d:%02d:%02d\n",h,m,s);
}
}
未通过,是因为但h,m,s是个位数时,比如我输入12:00:00,输出的是AM:12:0:0,而不是AM:12:00:00,怎么办有什么办法?
对你这个问题
格式化输出就可以了...
看我的代码...
符合你的要求...
4. c语言编写 输入一个以秒为单位的时间值,将其转化成“时:分:秒”的形式输出,将转换操作定义成函数
#include<stdio.h>
void trans(int sec){
int hour,min;
hour=sec/3600; //计算时 3600进制
min=(sec%3600)/60; //计算分 60进制
sec=(sec%3600)%60; //计算秒 余下的全为秒数
printf("%d时:%d分:%d秒\n",hour,min,sec);
}
int main(){
int sec;
printf("请输入秒数:\n");
scanf("%d",&sec);
trans(sec);
return 0;
}
可以自己试试
5. C语言实验--转换日期格式
#include<stdio.h>
intmain(void)
{
inty,m,d;
scanf("%d/%d/%d",&m,&d,&y);
printf("%d.%02d.%02d",y,m,d);
return0;
}
6. 时间换算 c语言
#include<stdio.h>
intmain()
{
inthh,mm,ss;
intadd;
scanf("%d:%d:%d",&hh,&mm,&ss);
scanf("%d",&add);
ss=ss+add;
if(ss>=60){
ss=ss-60;
mm++;
if(mm>=60){
mm=mm-60;
hh++;
if(hh>=24){
hh=hh-24;
}
}
}
printf("%d:%d:%d ",hh,mm,ss);
}
7. C语言转换日期的表示形式
这个可以吗?
#include
void
main()
{
char
num[8];//定义一个字符数组num
int
i;//定义整型变量
printf("请输入正确的日期!格式为:xxxxxxxx\n");
for(i=0;i<=8;i++)//循环语句,读入8个字符,依次放到数组num中,作为8个元素
num[i]=getchar();
for(i=0;i<4;i++)//输出前四个字符(年份)
putchar(num[i]);
putchar('_');
for(;i<6;i++)//输出(月份)
putchar(num[i]);
putchar('_');
for(;i<8;i++)//输出(日)
putchar(num[i]);
putchar('\n');//回车
}