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("\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程序:年转化天的更多相关文章
- 微信小程序经纬度转化为具体位置(逆地址解析)
小程序wx.getLocation只能获取经纬度, 这时候想要具体地址就需要借助第三方sdk(逆地址解析) 我这边第三方以腾讯位置服务举例 一. 首先小程序需要申请wx.getLocation接口权限 ...
- 微信小程序 时间戳 转化为 日期格式
util.js : function transTime(unixtime) { var dateTime = new Date(parseInt(unixtime) * 1000) var yea ...
- java程序:转化金额
在处理财务账款时,需要将转账金额写成大写的.也就是说,如果要转账123456.00元,则需要写成“壹拾贰万叁仟肆佰伍拾陆元整”.所以常常需要通过程序控制自动进行转换.本实例实现了小写金额到大写金额的转 ...
- 【微信小程序推广营销】教你微信小程序SEO优化,让你的小程序快人一步抢占先机
今年一月份上线的小程序,经过近一年的沉淀发酵,现在也进入了快速发展期. 在未来肯定会有越来越多的小程序诞生,小程序多了就需要搜索,那么如何让自己的小程序在众多的小程序中脱颖而出,这就需要小程序SEO优 ...
- 【AutoMapper官方文档】DTO与Domin Model相互转换(下)
写在前面 AutoMapper目录: [AutoMapper官方文档]DTO与Domin Model相互转换(上) [AutoMapper官方文档]DTO与Domin Model相互转换(中) [Au ...
- inside the C++ Object model总结
一. 关于对象 1.内联函数:能够除去函数调用的开支,每一处内联函数的调用都是代码的复制.这是一种空间换取时间的做法,若函数代码量大或者有循环的情况下,不宜内联(这件事有些编译器会自动帮你做).在类中 ...
- IO 磁盘总结
IO 磁盘 1.读取 首先引用一个using System.IO;引用空间其次 string ste= File.ReadAllText("E:\\bt.txt",Encoding ...
- libSVM的数据格式
首先介绍一下 libSVM的数据格式 Label 1:value 2:value -. Label:是类别的标识,比如上节train.model中提到的1 -1,你可以自己随意定,比如-10,0,15 ...
- 【Xamarin挖墙脚系列:Xamarin开发环境配置需求】
原文:[Xamarin挖墙脚系列:Xamarin开发环境配置需求] 前言 因为操作的全是大块头,加大你们的内存,CPU网上飙.... 卤煮的机器配置 最近的版本部署包,百度云离线下载:版本:Xama ...
- c#基础语言编程-序列化
引言 程序员在编写应用程序的时候往往要将程序的某些数据存储在内存中,然后将其写入某个文件或是将它传输到网络中的另一台计算机上以实现通讯.这个将程序数据转化成能被存储并传输的格式的过程被称为" ...
随机推荐
- JSON.parse 和 JSON.stringify 详解
JSON格式,(简写JavaScript Object Notation),是一种用于数据交换的文本格式,书写简单. 基于JavaScript原生语法,能够序列化对象.数组.数值.字符串.布尔值和 n ...
- Java Web程序设计笔记 • 【第6章 Servlet技术进阶】
全部章节 >>>> 本章目录 6.1 应用 Servlet API(一) 6.1.1 Servlet 类的层次结构 6.1.2 使用 Servlet API 的原则 6.1 ...
- 论文翻译:2020_Acoustic Echo Cancellation Based on Recurrent Neural Network
论文地址:https://ieeexplore.ieee.org/abstract/document/9306224 基于RNN的回声消除 摘要 本文提出了一种基于深度学习的语音分离技术的回声消除方法 ...
- SpringBoot读取外部配置文件的方法
SpringBoot读取外部配置文件的方法 Spring高级之注解@PropertySource详解(超详细) 1.@PropertySource(value = {"classpath:c ...
- Kafka集群安装Version1.0.1(自带Zookeeper)
1.说明 Kafka集群安装,基于版本1.0.1, 使用kafka_2.12-1.0.1.tgz安装包, 其中2.12是编译工具Scala的版本. 而且不需要另外安装Zookeeper服务, 使用Ka ...
- Python基础案例练习:制作学生信息管理系统
一.前言 学生信息管理系统,相信大家或多或少都有做过 最近看很多学生作业都是制作一个学生信息管理系统 于是,今天带大家做一个简单的学生信息管理系统 二.开发环境: 我用到的开发环境 Python 3. ...
- 初识python: flush 实现进度条打印
通过flush(强制刷新)实现,类似进度条打印: #!/user/bin env python # author:Simple-Sir # time:20180918 #打印进度条 import sy ...
- celery起动,运行有警告
运行命令 : celery worker -A task_log -l info: 有如下警告 2019-12-22 22:42:50,215: WARNING/MainProcess] /root ...
- CentOS7添加开机启动服务或脚本
方法一(rc.local) 改方式配置自动启动最为简单,只需要修改rc.local文件 由于在centos7中/etc/rc.d/rc.local的权限被降低了,所以需要赋予其可执行权 chmod + ...
- SYCOJ137斜线输出(1)
题目-斜线输出(1) (shiyancang.cn) 在同一斜线上的满足方程.坐标关系计算即可. #include<bits/stdc++.h> using namespace std; ...