判断当天日历是星期几

    技术2022-05-20  51

    //如何判断当天日历是星期几 #include <stdio.h> #include <time.h> int main () { time_t rawtime; struct tm * timeinfo; int year, month ,day; char * weekday[] = { "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"}; //注意这里的顺序,值得参考 /* prompt user for date */ printf ("Enter year: "); scanf ("%d",&year); printf ("Enter month: "); scanf ("%d",&month); printf ("Enter day: "); scanf ("%d",&day); /* get current timeinfo and modify it to the user's choice */ time ( &rawtime ); timeinfo = localtime ( &rawtime ); timeinfo->tm_year = year - 1900; timeinfo->tm_mon = month - 1; timeinfo->tm_mday = day; /* call mktime: timeinfo->tm_wday will be set */ mktime ( timeinfo ); printf ("That day is a %s./n", weekday[timeinfo->tm_wday]); return 0; }


    相关知识点说明:

    1. 类型说明

    <time.h>

     typedef long time_t;        /* time value */

     

    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 */        };

    2.函数说明

    [1]函数名: time

      头文件:time.h

      函数原型:time_t time(time_t * timer)

      功 能: 获取当前的系统时间,返回的结果是一个time_t类型,其实就是一个大整数,其值表示从CUT(Coordinated Universal Time)时间1970年1月1日00:00:00(称为UNIX系统的Epoch时间)到当前时刻的秒数。

    [2]函数名:localtime

         原型: struct tm *localtime(const time_t *clock);

         功 能: 把从1970-1-1零点零分到当前时间系统所偏移的秒数时间转换为日历时间 。

      说明:此函数获得的tm结构体的时间,是已经进行过时区转化为本地时间。

      返回值:返回指向tm 结构体的指针.tm结构体是time.h中定义的用于分别存储时间的各个量(年月日等)的结构体.

    [3]函数名:mktime

           原型:time_t mktime(strcut tm * timeptr);

          说明:mktime()用来将参数timeptr所指的tm结构数据转换成从公元1970年1月1日0时0分0 秒算起至今的UTC时间所经过的秒数。

           返回值:返回经过的秒数。


    最新回复(0)