65,186
社区成员




systime = GetTime();
second = systime % 60;
minute = (systime % 3600) / 60;
hour = ......
year = ......
void main()
{
int times,temp;
int t_year ,t_month; //很奇怪,用于pout的ar,month,day,hour,minute,second不能在这里定义,否则不干活。
int months[12]; //这样初始化数组是错的:int months[12] = {31,28,31,30,31,30,31,31,30,31,30,31};
months[0] = 31;
months[1] = 28;
months[2] = 31;
months[3] = 30;
months[4] = 31;
months[5] = 30;
months[6] = 31;
months[7] = 31;
months[8] = 30;
months[9] = 31;
months[10] = 31;
months[11] = 31;
times = GetTime() + 28800; //系统计时从1970年早上8点开始
t_year = 1970;
t_month = 0;
//get year
for(;;)
{
temp = times;
if(((t_year % 4 == 0) && (t_year % 100 != 0)) || (t_year % 400 ==0))
times = times - 31622400;
else
times = times - 31536000;
if(times < 0)
{
times = temp;
break;
}
t_year++;
}
if(((t_year % 4 == 0) && (t_year % 100 != 0)) || (t_year % 400 ==0))
months[1] = 29;
else
months[1] = 28;
//get months
for(;;)
{
temp = times;
times = times - months[t_month] * 86400;
if(times < 0)
{
times = temp;
break;
}
t_month++;
}
year = t_year;
month = t_month + 1; //月份不是从零开始,而是从1开始
day = times / 86400 + 1; //天数不是从零开始,而是从1开始
hour = (times % 86400) / 3600;
minute = (times % 3600) / 60;
second = times % 60;
}
void main()
{
int times,temp;
int t_year ,t_month,t_day; //很奇怪,用于对外输出的pout的变量year,month,day,hour,minute,second不能在这里定义,
//否则不干活。
int months[12]; //这样初始化数组是错的:int months[12] = {31,28,31,30,31,30,31,31,30,31,30,31};真是奇怪。
months[0] = 31;
months[1] = 28;
months[2] = 31;
months[3] = 30;
months[4] = 31;
months[5] = 30;
months[6] = 31;
months[7] = 31;
months[8] = 30;
months[9] = 31;
months[10] = 31;
months[11] = 31;
bool RunNian = false;
times = GetTime() + 28800; //系统计时从1970年早上8点开始
t_year = 1970;
t_month = 1;
t_day = 1;
//get year
for(;;)
{
temp = times;
if(((t_year % 4 == 0) && (t_year % 100 != 0)) || (t_year % 400 ==0)) //判断闰年
times = times - 31622400;
else
times = times - 31536000;
if(times < 0)
{
times = temp;
break;
}
t_year++;
}
if(((t_year % 4 == 0) && (t_year % 100 != 0)) || (t_year % 400 ==0)) //判断大二月
months[1] = 29;
else
months[1] = 28;
//get months
for(;;)
{
temp = times;
times = times - months[t_month] * 86400;
if(times < 0)
{
times = temp;
break;
}
t_month++;
}
year = t_year; //年的输出值;
month = t_month; //月的输出值;
day = times / 86400; //日的输出值;
hour = (times % 86400) / 3600; //小时的输出值;
minute = (times % 3600) / 60; //分钟的输出值;
second = times % 60; //秒的输出值
}
#include <stdio.h>
#include <time.h>
#include <string.h>
int main()
{
time_t result = time(NULL);
struct tm t;
memcpy(&t, localtime(&result), sizeof(struct tm));
printf("%d-%d-%d\t%d:%d:%d\n", t.tm_year + 1900, t.tm_mon,
t.tm_mday, t.tm_hour, t.tm_min, t.tm_sec);
printf("%s\n", ctime(&result));
return 0;
}
struct tm
{
int tm_sec; /* seconds after the minute - [0,59] */
int tm_min; /* minutes after the hour - [0,59] */
int tm_hour; /* hours since midnight - [0,23] */
int tm_mday; /* day of the month - [1,31] */
int tm_mon; /* months since January - [0,11] */
int tm_year; /* years since 1900 */
int tm_wday; /* days since Sunday - [0,6] */
int tm_yday; /* days since January 1 - [0,365] */
int tm_isdst;/* daylight savings time flag */
};
/* 以上是tm结构体介绍,以下是一段获取当前系统年月日的程序 */
#include <time.h>
main()
{
char *pDate;
char cDate[] = "00000000";
time_t timep;
struct tm *p;
time(&timep);
p = gmtime(&timep);
printf("%d%02d%d",(1900 + p -> tm_year),(1 + p -> tm_mon),p -> tm_mday);
sprintf(cDate,"%d%02d%d",
(1900 + p -> tm_year),(1 + p -> tm_mon),p -> tm_mday);
printf("\ncDate=%s\n",cDate);
pDate = cDate;
printf("\npDate=%s\n",pDate);
}