突然想算算自己到底活了多少天了,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. The Limitations of Deep Learning in Adversarial Settings

    目录 概 主要内容 alg2, alg3 一些有趣的实验指标 Hardness measure Adversarial distance Nicolas Papernot, Patrick McDan ...

  2. 后缀数组【原理+python代码】

    后缀数组 参考:https://blog.csdn.net/a1035719430/article/details/80217267 https://blog.csdn.net/YxuanwKeith ...

  3. 完全替代RTD2166方案设计|CS5202直接替代RTD2166|DP转VGA 方案

    CS5202可以直接PIN TO PIN替代RTD2166 整体方案设计只需改动一个电阻和一个电容,在性能和参数设定方面与RTD2166可以达成一致,且成本比RTD2166要低,性价比更高.CS520 ...

  4. 编写Java程序,使用PreparedState实现对英雄数据的新增、删除和更新

    返回本章节 返回作业目录 需求说明: 使用PreparedState实现对英雄数据的新增.删除和更新 英雄(t_hero)表结构 列名(含义) 数据类型 约束 id (序号) int 主键,自动增长 ...

  5. 【Linux】Linux没有网络,可能的解决方法

    [root@localhost etc]# cd /etc/sysconfig/network-scripts/ [root@localhost network-scripts]# ll 修改此文件中 ...

  6. ActiveMQ基础教程(一):认识ActiveMQ

    ActiveMQ是Apache软件基金会所研发开源的消息中间件,为应用程序提供高效的.可扩展的.稳定的和安全的企业级消息通信. 现在的消息队列有不少,RabbitMQ.Kafka.RocketMQ,Z ...

  7. Java如何打好牢固的基础?

    如果纯粹是为了学Java,那么不建议阅读本文,因为本文不是从理论和教科书的角度讲述如何打好java基础,而是会从"快速用java挣钱"这个角度,讲边学.边做项目和边提升的方法. 在 ...

  8. 解决VirtualBox 运行时报内存不能written

    在VirtualBox 虚拟机中安装系统的时候,突然报"0x00000000指令,该内存不能written",只能强制停止,这个问题要怎么解决呢? 解决办法是恢复系统主题3个dll ...

  9. CSS中inherit指定继承的使用方法和auto的区别

    CSS中的每个属性都有一个特定值"inherit",其含义是指定继承父元素的相应属性,使用inherit一方面在代码上能地表明要继承于父元素的样式属性,另一方面也使子元素继承了那些 ...

  10. 机器学习&恶意代码静态检测

    目录 分析工具 方法概述 二进制灰度图 字节(熵)直方图 字符串信息 ELF结构信息 源码分析与OPcode FCG references: 分析工具 readelf elfparser ninja ...