突然想算算自己到底活了多少天了,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. 第十个知识点:RSA和强RSA问题有什么区别?

    第十个知识点:RSA和强RSA问题有什么区别 这个密码学52件事数学知识的第一篇,也是整个系列的第10篇.这篇介绍了RSA问题和Strong-RSA问题,指出了这两种问题的不同之处. 密码学严重依赖于 ...

  2. 3 - 基于ELK的ElasticSearch 7.8.x技术整理 - 高级篇( 偏理论 )

    4.ES高级篇 4.1.集群部署 集群的意思:就是将多个节点归为一体罢了( 这个整体就有一个指定的名字了 ) 4.1.1.window中部署集群 - 了解即可 把下载好的window版的ES中的dat ...

  3. 【优雅代码】03-optional杜绝空指针异常

    [优雅代码]03-optional杜绝空指针异常 欢迎关注b站账号/公众号[六边形战士夏宁],一个要把各项指标拉满的男人.该文章已在github目录收录. 屏幕前的大帅比和大漂亮如果有帮助到你的话请顺 ...

  4. Spring5源码解析_IOC之容器的基本实现

    前言: 在分析源码之前,我们简单回顾一下SPring核心功能的简单使用: 容器的基本用法 Bean是Spring最核心的东西,Spring就像是一个大水桶,而Bean就是水桶中的水,水桶脱离了水就没有 ...

  5. Drools创建Maven工程

    1.说明 本文介绍创建Drools的Maven工程的方法, 仅使用Eclipse开发工具, 不使用Drools的相关插件, 先创建一个Maven工程, 然后引入Drools的相关依赖即可, 最后再写一 ...

  6. Solr集群安装Version5.5.2(cloud模式)

    Solr安装cloud模式,基于Solr的安装版本为5.5.2. 安装规划 Solr IP/机器名 安装软件 运行进程 zdh-7 solr jar zdh-9 solr jar zookeeper ...

  7. 【优雅代码】07-spring下的优秀工具类

    [优雅代码]07-spring下的优秀工具类 欢迎关注b站账号/公众号[六边形战士夏宁],一个要把各项指标拉满的男人.该文章已在github目录收录. 屏幕前的大帅比和大漂亮如果有帮助到你的话请顺手点 ...

  8. Spring @Valid 和 @Validated 的区别和使用

    两者区别 @Valid @Validated 标准 标准JSR-303规范 增强JSR-303规范 包 javax.validation org.springframework.validation ...

  9. js箭头函数 的 (e) => { } 写法笔记

    1. (e) => {} 是ES 6 新语法,默认是Es 5.1,因此在这里设置一下就不会提示红色下划线了 2.使用: (e) => {}  , 其实就是function (e){} 的缩 ...

  10. Centos6.8安装并配置VNC

    一般服务器都会在IDC或云端,为了可以看到服务器的图形化界面,需要安装配置VNC,本例为Centos6.8上安装配置VNC. [root@hostname ~]#yum install -y tige ...