zoukankan      html  css  js  c++  java
  • 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);
    	}
    
    }
    
    
    

    在这里插入图片描述

    个人学习笔记!仅以学习为目的,感谢各位前辈!
  • 相关阅读:
    团队项目——站立会议DAY14
    团队项目——站立会议DAY13
    团队项目——站立会议DAY12
    团队项目——站立会议 DAY11
    团队项目——站立会议DAY10
    团队项目——站立会议DAY9
    团队项目——站立会议 DAY8
    团队项目——站立会议DAY7
    团队项目——站立会议DAY6
    作业五:团队项目——项目启动及需求分析
  • 原文地址:https://www.cnblogs.com/tfxz/p/12621810.html
Copyright © 2011-2022 走看看