C程序:年转化天

突然想算算自己到底活了多少天了,e,就是纯属为了好玩,毕竟咱作为一名C初学者还是要多练练的…
为了好玩,加了个密码登陆的,密码是521,还有就是不太懂时间获取。。。

具体闰年的判断方法:
在这里插入图片描述在这里插入图片描述
代码如下:

#include<stdio.h>
#include<conio.h>
#include<string.h>
#include<stdlib.h>
#include<windows.h>
#include<time.h> 
typedef struct yearinfor//生日信息结构体 
{
	int n,y,r;
}INFOR;
//-----------函数声明----------------
void PASSWORD();//密码验证 
int CHECK(int n);//闰年检测
int EDGE(INFOR x); //年限边缘计算 
int FUN(INFOR y,INFOR z);//核心控制函数 
//-----------------------------------
void main()
{
	int live; 
	INFOR b1; //出生 日期 
	INFOR b2;//现在 日期 
	//char *wday[] = {"Sun","Mon","Tue","Wed","Thu","Fri","Sat"}; //指针数组-字符串
	time_t timep;
	struct tm *p;
	time(&timep);
	p = localtime(&timep);
	b2.n=(1900+p->tm_year);//
	b2.y=(1+p->tm_mon);//------------存取现在日期 
	b2.r=(p->tm_mday); //
	PASSWORD();
	for(;;)
	{
	system("cls");
	printf("		       %d年 %d月 %d日
 ", (1900 + p->tm_year), (1 + p->tm_mon), p->tm_mday);
	printf("		------存活时间查询系统------");
	printf("
		出生年:");
	scanf("%d",&b1.n);
	fflush(stdin);
	printf("		出生月:");
	scanf("%d",&b1.y); 
	printf("		出生日:");
	scanf("%d",&b1.r);
	printf("		----------------------------");
	live=FUN(b1,b2);
	printf("
		你已经存活:%d天
		",live);
	system("pause");	
	}
	
}
int CHECK(int n)//闰年判断函数 
{
	
	switch((n%4==0&&n%100!=0)||(n%100==0||n%400==0))
	{
		case 1:return 1;break;//闰年 
		case 0:return 0;break;//平年 
	}
}
int EDGE(INFOR x)//年限边缘计算 
{
	int sum;//存放结果天数 
	switch(x.y)
	{
		case 1:sum=0;break;
		case 2:sum=31;break;
		case 3:sum=59;break;
		case 4:sum=90;break;
		case 5:sum=120;break;
		case 6:sum=151;break;
		case 7:sum=181;break;
		case 8:sum=212;break;
		case 9:sum=243;break;
		case 10:sum=273;break;
		case 11:sum=304;break;
		case 12:sum=334;break;
	}
	sum+=x.r;//月加上日 
	if(CHECK(x.n)==1)//如果为闰年 
	{
		sum++; 
	}
	return sum;
}
int FUN(INFOR y,INFOR z)//核心控制函数 
{
	int sum=0;
	int i,j;
	i=y.n;//间隔起点 
	j=z.n-1;//间隔终点 
	for(;i<j;i++)//间隔年计算 
	{
		if(CHECK(i)==0)
			sum+=365;
		if(CHECK(i)==1)
			sum+=366;
	}
	switch(CHECK(z.n))
	{
		case 0:sum+=365-EDGE(y)+EDGE(z);break;
		case 1:sum+=366-EDGE(y)+EDGE(z);break;
	}
	return sum;
}
void PASSWORD()
{
	int i,j;
	char ch;
	char pw[]="521",temp[20];

	for(j=0;j<3;j++)
	{
	system("cls");
	printf("------------欢迎访问存活天数查询系统-----------
");
	printf("		请输入本次访问密码:"); 

		for(i=0;(ch=getch())!='
';)
	{
		if(ch!='')
		{
			temp[i]=ch;
			if(temp[i]=='')
			{
				if(i==0)
					continue;
				i--;
				putchar('');
				putchar(' ');
				putchar('');
			}
			else
			{
				i++;
				putchar('*');
			}
			
		}
	}
	temp[i]='';
	if(strcmp(temp,pw)==0)
	{
		printf("
		---正确---
");	
		break;	
	} 
	else
	{
		printf("
		错误,请重新输入
");
		Sleep(500);
			continue;
	}
			
	}
	if(j>=3)
	{
		printf("
		--输入频繁,即将关闭!
");
		Sleep(2000);
		exit(0);
	}

}


在这里插入图片描述

个人学习笔记!仅以学习为目的,感谢各位前辈!
原文地址:https://www.cnblogs.com/tfxz/p/12621810.html