C语言转换日期的表示形式

Python023

C语言转换日期的表示形式,第1张

这个可以吗?

#include

void

main()

{

char

num[8]//定义一个字符数组num

int

i//定义整型变量

printf("请输入正确的日期!格式为:xxxxxxxx\n")

for(i=0i<=8i++)//循环语句,读入8个字符,依次放到数组num中,作为8个元素

num[i]=getchar()

for(i=0i<4i++)//输出前四个字符(年份)

putchar(num[i])

putchar('_')

for(i<6i++)//输出(月份)

putchar(num[i])

putchar('_')

for(i<8i++)//输出(日)

putchar(num[i])

putchar('\n')//回车

}

#include<stdio.h>

int isLeap(int y)

{

if(y%4==0&&y%100!=0||y%400==0)

return 1

else 

return 0

}

int getDays(int y,int m,int d)

{

int i,days=0

int DaysPerMonth[]={31,28,31,30,31,30,31,31,30,31,30,31}

DaysPerMonth[1]=isLeap(y)?29:28

for(i=0i<m-1i++)

{

days+=DaysPerMonth[i]

}

days+=d

return days

}

void getDate(int y,int days,int*pm,int *pd)

{

int m,d,i,temp=0

int DaysPerMonth[]={31,28,31,30,31,30,31,31,30,31,30,31}

DaysPerMonth[1]=isLeap(y)?29:28

for(i=0i<12i++)

{

if(temp<days&&i<12&&temp+DaysPerMonth[i]>=days)

break

temp+=DaysPerMonth[i]

}

m=i+1

d=days-temp

*pm=m

*pd=d

}

int main()

{

    int y,m,d,days

y=2000

days=getDays(y,12,31)

printf("%d\n",days)

getDate(y,days,&m,&d)

printf("%d年的第%d天是%d月%d号\n",y,days,m,d)

    return 0

}

用代码讲解一下:

#include <stdio.h>

#include <time.h>

int main(void)

{

char buffer[128]

struct tm *datetime

time_t current_time

tzset()

time(&current_time)

datetime = localtime(&current_time)

strftime(buffer, sizeof(buffer), "%x %X", datetime)

printf("Using %%x %%X: %s\n", buffer)

strftime(buffer, sizeof(buffer), "%A %B %m, %Y", datetime)

printf("Using %%A %%B %%m %%Y: %s\n", buffer)

strftime(buffer, sizeof(buffer), "%I:%M%p", datetime)

printf("Using %%I:%%M%%p: %s\n", buffer)

return 1

}

输出结果:

Using %x %X: 09/09/12 18:10:33

Using %A %B %m %Y: Sunday September 09, 2012

Using %I:%M%p: 06:10PM