小甲鱼 P52 枚举类型enum

小甲鱼 P52 枚举类型enum

localtime 函数---获取当前的本地时间和日期

其实lovaltime 函数是将一个time_t类型的值转换成具体的本地时间和日期,所以需要先使用time函数来返回表示当前时间的time_t。

localtime的返回值是指向tm结构体的指针。

struct tm

{

int tm_sec;   /* 秒,范围为0~59,60的话表示闰秒 */

inr tm_min;   /* 分,范围是0~59 */

int tm_hour;   /* 时,范围是0~23 */

int tm_mday;   /* 一个月中的第几天,范围是1~31 */

int tm_mon;   /* 一年中的第几个月,范围是0~11 */

int tm_year;   /* 自1990年往后的第几年,范围是1990- */

int tm_wday;   /* 星期几,自星期天开始计算,范围是0~6 */

int tm_yday;   /* 一年中的第几天,范围是0~365 */

int tm_isdst;   /* 指定日光节约时间是否生效。正数表示生效,0表示不生效 */

}

#include <stdio.h>
#include <time.h>

#define SUN 0
#define MON 1
#define TUE 2
#define WED 3
#define THU 4
#define FRI 5
#define SAT 6

int main()
{
	struct tm *p;//包含了当地时间和日期 
	time_t t;//无符号整形
	
	time(&t);//表示当前的秒数(1970-1-1到这时刻的秒数) 
	p = localtime(&t);//获取当前的本地时间和日期 
	
	switch(p->tm_wday)//tm_wday:星期几,自星期天开始计算,范围0~6 
	{
		case MON:
		case TUE:
		case WED:
		case THU:
		case FRI:
			printf("干活!T_T\n");
			break;
		case SAT:
		case SUN:
			printf("放假!^_^\n");
			break;
		default:
			printf("Error!\n");
	}
	
	return 0;
	
	return 0;
}

枚举类型---提高程序的可读性

如果一个变量只有几种可能的值,那么就可以将其定义为枚举类型。

声明枚举类型:

enum 枚举类型名称 {枚举值名称,枚举值名称...};

定义枚举变量

enum 枚举类型名称 枚举变量1,枚举变量2;

#include <stdio.h>
#include <time.h>

int main(void)
{
	//枚举常量,从0开始定义,sun=0, mon=1 
	enum Week {sun, mon, tue, wed, thu, fri, sat};//枚举常量 
	enum Week today;//枚举变量
	struct tm *p;
	time_t t;
	
	time(&t);
	p = localtime(&t);
	
	today = (enum Week)p->tm_wday;//星期几 
	
	switch (today)
	{
		case mon:
		case tue:
		case wed:
		case thu:
		case fri:
			printf("干活!T_T\n");
			break;
		case sat:
		case sun:
			printf("放假!^_^\n");
			break;
		default:
			printf("Error!\n");
	}
	
	return 0;
}

不希望从0作为起点

#include <stdio.h>

int main(void)
{
	enum Color {red, green, blue = 10, yellow};
	enum Color rgb;
	
	printf("red = %d\n", red);
	printf("green = %d\n", green);
	printf("blue = %d\n", blue);
	printf("yellow = %d\n", yellow);
	
	//red = 101;//错误,一确定下来,就是常量,无法修改 
	
	return 0;
}

猜你喜欢

转载自blog.csdn.net/xiaodingqq/article/details/82951091