突然想算算自己到底活了多少天了,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. JavaScript8种数据类型

    一.开门见山 在ES5的时候,我们认知的数据类型确实是 6种:Number.String.Boolean.undefined.object.Null. ES6 中新增了一种 Symbol .这种类型的 ...

  2. [算法笔记-题解]问题 D: 习题4-4 三个整数求最大值

    问题 D: 习题4-4 三个整数求最大值 [命题人 : 外部导入] 时间限制 : 1.000 sec 内存限制 : 12 MB 题目描述 有3个整数a, b, c,由键盘输入,输出其中最大的数. 输入 ...

  3. CS5266替代AG9311设计TYPEC转HDMI带PD3.0音视频拓展坞方案

    CS5266替代AG9311设计TYPEC转HDMI带PD3.0音视频拓展坞方案台湾安格AG9311是一款TYPEC转HDMI带PD3.0的音视频转换芯片,它主要用在USB TYPEC拓展坞或者USB ...

  4. gojs 实用高级用法

    大家,新年好! 历史文章: 数据可视化 gojs 简单使用介绍 gojs 如何实现虚线(蚂蚁线)动画? 本文介绍的是在使用 gojs 制作图的过程中,你可能会碰到的问题的一些解决方案. gojs 是一 ...

  5. Java+Eclipse+MySQL+Swing实现学生会考成绩管理系统(免费完整项目)

    版权声明:原创不易,本文禁止抄袭.转载,侵权必究! 目录 一.需求开发文档 二.数据库设计文档 三.功能模块部分代码及效果展示 四.完整源码下载 五.作者Info 一.需求开发文档 项目完整文件列表: ...

  6. Spring @Bean 注解的使用

    使用说明 这个注解主要用在方法上,声明当前方法体中包含了最终产生 bean 实例的逻辑,方法的返回值是一个 Bean.这个 bean 会被 Spring 加入到容器中进行管理,默认情况下 bean 的 ...

  7. Launch agent by connecting it to the master

    Jenkins Node 是 Windows, Jenkins Server 在 Linux C:\JenkinsAgent\start_jenkins_agent.bat java -DSoftKi ...

  8. PyCharm - 关联mysql失败 - Server returns invalid timezone. Go to 'Advanced' tab and set 'serverTimezone' property manually.

    时区错误,MySQL默认的时区是UTC时区,比北京时间晚8个小时. 所以要修改mysql的时长 在mysql的命令模式下,输入: set global time_zone='+8:00'; 再次连接成 ...

  9. Antd使用timePicker封装时间范围选择器(React hook版)

    antd中提供了是日期范围选择器及datepaicker封装日期范围选择器的示例,但是没有时间选择范围的组件,这里使用两个timePicker组合一个事件范围选择器,通过disabled属性限定时间可 ...

  10. 日K蜡烛图

    股票价格涨跌趋势,常用蜡烛图技术中的K线图来表示,分为按日的日K线.按周的周K线.按月的月K线等.以日K线为例,每天股票价格从开盘到收盘走完一天,对应一根蜡烛小图,要表示四个价格:开盘价格Open(早 ...