突然想算算自己到底活了多少天了,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("\t\t %d年 %d月 %d日\n ", (1900 + p->tm_year), (1 + p->tm_mon), p->tm_mday);
printf("\t\t------存活时间查询系统------");
printf("\n\t\t出生年:");
scanf("%d",&b1.n);
fflush(stdin);
printf("\t\t出生月:");
scanf("%d",&b1.y);
printf("\t\t出生日:");
scanf("%d",&b1.r);
printf("\t\t----------------------------");
live=FUN(b1,b2);
printf("\n\t\t你已经存活:%d天\n\t\t",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("------------欢迎访问存活天数查询系统-----------\n");
printf("\t\t请输入本次访问密码:"); for(i=0;(ch=getch())!='\r';)
{
if(ch!='\0')
{
temp[i]=ch;
if(temp[i]=='\b')
{
if(i==0)
continue;
i--;
putchar('\b');
putchar(' ');
putchar('\b');
}
else
{
i++;
putchar('*');
} }
}
temp[i]='\0';
if(strcmp(temp,pw)==0)
{
printf("\n\t\t---正确---\n");
break;
}
else
{
printf("\n\t\t错误,请重新输入\n");
Sleep(500);
continue;
} }
if(j>=3)
{
printf("\n\t\t--输入频繁,即将关闭!\n");
Sleep(2000);
exit(0);
} }

C程序:年转化天的更多相关文章

  1. 微信小程序经纬度转化为具体位置(逆地址解析)

    小程序wx.getLocation只能获取经纬度, 这时候想要具体地址就需要借助第三方sdk(逆地址解析) 我这边第三方以腾讯位置服务举例 一. 首先小程序需要申请wx.getLocation接口权限 ...

  2. 微信小程序 时间戳 转化为 日期格式

    util.js  : function transTime(unixtime) { var dateTime = new Date(parseInt(unixtime) * 1000) var yea ...

  3. java程序:转化金额

    在处理财务账款时,需要将转账金额写成大写的.也就是说,如果要转账123456.00元,则需要写成“壹拾贰万叁仟肆佰伍拾陆元整”.所以常常需要通过程序控制自动进行转换.本实例实现了小写金额到大写金额的转 ...

  4. 【微信小程序推广营销】教你微信小程序SEO优化,让你的小程序快人一步抢占先机

    今年一月份上线的小程序,经过近一年的沉淀发酵,现在也进入了快速发展期. 在未来肯定会有越来越多的小程序诞生,小程序多了就需要搜索,那么如何让自己的小程序在众多的小程序中脱颖而出,这就需要小程序SEO优 ...

  5. 【AutoMapper官方文档】DTO与Domin Model相互转换(下)

    写在前面 AutoMapper目录: [AutoMapper官方文档]DTO与Domin Model相互转换(上) [AutoMapper官方文档]DTO与Domin Model相互转换(中) [Au ...

  6. inside the C++ Object model总结

    一. 关于对象 1.内联函数:能够除去函数调用的开支,每一处内联函数的调用都是代码的复制.这是一种空间换取时间的做法,若函数代码量大或者有循环的情况下,不宜内联(这件事有些编译器会自动帮你做).在类中 ...

  7. IO 磁盘总结

    IO 磁盘 1.读取 首先引用一个using System.IO;引用空间其次 string ste= File.ReadAllText("E:\\bt.txt",Encoding ...

  8. libSVM的数据格式

    首先介绍一下 libSVM的数据格式 Label 1:value 2:value -. Label:是类别的标识,比如上节train.model中提到的1 -1,你可以自己随意定,比如-10,0,15 ...

  9. 【Xamarin挖墙脚系列:Xamarin开发环境配置需求】

    原文:[Xamarin挖墙脚系列:Xamarin开发环境配置需求] 前言 因为操作的全是大块头,加大你们的内存,CPU网上飙.... 卤煮的机器配置  最近的版本部署包,百度云离线下载:版本:Xama ...

  10. c#基础语言编程-序列化

    引言 程序员在编写应用程序的时候往往要将程序的某些数据存储在内存中,然后将其写入某个文件或是将它传输到网络中的另一台计算机上以实现通讯.这个将程序数据转化成能被存储并传输的格式的过程被称为" ...

随机推荐

  1. web服务之nginx部署

    本期内容概要 了解web服务 Nginx和Apache的对比 部署Nginx 内容详细 1.什么是web服务 Web服务是一种服务导向架构的技术,通过标准的Web协议提供服务,目的是保证不同平台的应用 ...

  2. 编写Java程序_找星座朋友应用软件

    一.About the Project 项目介绍 自古以来,人对于恒星的排列和形状很感兴趣,并很自然地把一些位置相近的星联系起来,组成星座.占星术亦称"占星学"."星占学 ...

  3. 对接网易云信音视频2.0呼叫组件集成到vue中,实现web端呼叫app,视频语音通话。

    项目中需要实现视频通话功能,经过公司的赛选,采用网易云信的视频通话服务,app小伙伴集成很顺利.web端需要实现呼叫app端用户.网易云信文档介绍不全,vue的demo满足不了需求,和客服人员沟通,只 ...

  4. 抛砖系列之-MySQL中的数据类型JSON

    今天介绍一个MySQL中的数据类型-JSON,相信大家对JSON都不陌生,在日常工作中使用到的频率也很高,话不多说,直接开始. 何谓JSON 看下RFC文档对于JSON的描述 1.基于 JavaScr ...

  5. 如何使用NiFi等构建IIoT系统

    您认为构建一个先进的工业物联网原型需要多长时间: 从传感器收集数据到每个工厂的网关 将传感器数据从一个或多个工厂移至云或数据中心 自动热部署新配置到所有边缘设备 支持大规模数据量和端到端安全性 使用正 ...

  6. 使用docker或者docker-compose部署Zookeeper集群

    之前有介绍过Zookeeper的安装部署(Zookeeper基础教程(二):Zookeeper安装),但是那里我是基于独立的虚拟机来实现部署的,这种部署方式适合线上集群部署.后来有几次想用一下Zook ...

  7. Ubuntu18.04安装/卸载NVIDIA显卡驱动

    1 显卡驱动下载 官网:NVIDIA 搜索适合本机的驱动 获取最新版本驱动 立即下载 文件 以上,显卡驱动下载完成. 2 显卡驱动安装 2.1 添加可执行权限 进入驱动文件目录sudo chmod a ...

  8. CSS基础 CSS常见错误排错思路

  9. mongodb用户权限管理的CRUD

    https://blog.csdn.net/weixin_34332905/article/details/88759759?utm_medium=distribute.pc_relevant.non ...

  10. Java Date 类型比较

    //某时间Date time = tRemind.getTime();//现在时间Date now = new Date();//结果大于0则是现在时间大于某时间//结果等于0则为刚好相等//结果小于 ...