统计出生天数(改进前)
2014-03-08 19:58
155 查看
#include<stdio.h> int birthdays();//计算从出生日到现在的总天数 int sum();//计算某一年到某一年的总天数 int count();//计算闰年与非闰年某一天为该年第几天 int number();//计算第n月m天为该年第几天的函数 int check(); int door=0; int main() { int Year1; int Month1; int Date1; int Year2; int Month2; int Date2; int Days=0; printf("请输入您的出生日期:year-math-day\n"); scanf("%d-%d-%d",&Year1,&Month1,&Date1); printf("请输入您当前的日期:\nyear-math-day\n"); scanf("%d-%d-%d",&Year2,&Month2,&Date2); Days=birthdays(Year1,Year2,Month1,Month2,Date1,Date2); if(door<=0) { printf("今天是你出生后的第%d天",Days); } } int birthdays(int Year1,int Year2,int Month1,int Month2,int Date1,int Date2) { int Sumdays; if(Year1<Year2) { Sumdays=sum(Year1,Year2)+count(Year2,Month2,Date2)-count(Year1,Month1,Date1); return Sumdays; } else if(Year1>Year2) { printf("输入有误!"); door=1; } } int sum(int Year1,int Year2) { int n,Days=0; for(n=Year1;n<Year2;n++) { if (((n%100!=0) && (n%4==0)) || (n%400==0)) { Days+=366; } else { Days+=365; } } return Days; } int count(int Year,int Month,int Date) { int Days=0; int flg; if ((Year%100!=0) && (Year%4==0) || (Year%400==0)) { flg=1; check(Month,Date,flg); Days+=number(Month,Date,flg); } else { flg=0; check(Month,Date,flg); Days+=number(Month,Date,flg)-1; } return Days; } int number(int Month,int Date) { int Days=0; switch (Month) { case 1: Days+=Date; break; case 2: Days=31+Date; break; case 3: Days=60+Date; break; case 4: Days=91+Date; break; case 5: Days=121+Date; break; case 6: Days=152+Date; break; case 7: Days=182+Date; break; case 8: Days=213+Date; break; case 9: Days=244+Date; break; case 10: Days=274+Date; break; case 11: Days=305+Date; break; case 12: Days=335+Date; break; default: printf("您输入的信息有误,请重新输入"); } return Days; } int check(int Month,int Date,int flg) { switch (Month) { case 1: if(Date>31) { door=1; } break; case 2: if(flg) { if (Date>29) { printf("您输入的信息有误闰年2月不会大于29天!"); } door=1; } else if(flg<1) { if (Date>28) { } printf("您输入的信息有误!非闰年二月不会大于28天"); door=1; } break; case 3: if(Date>31) { door=1; } break; case 4: if(Date>30) { door=1; } break; case 5: if(Date>31) { door=1; } break; case 6: if(Date>30) { door=1; } break; case 7: if(Date>31) { door=1; } break; case 8: if(Date>31) { door=1; } break; case 9: if(Date>30) { door=1; } break; case 10: if(Date>31) { door=1; } break; case 11: if(Date>30) { door=1; } break; case 12: if(Date>31) { door=1; } } return door; }
相关文章推荐
- 统计出生天数
- 递归改进(在左侧树形不仅可以显示目录还可以显示跟要查询子目录统计的所有文件)
- 通过开始时间和结束时间按月统计工作天数
- 网站统计分析助企业改进营销策略
- (改进)Python语言实现词频统计
- Problem G 【思路点拨和代码详细注释】-20180124下午实验室全体杭电比赛-算一下某人从出生到到达18岁生日时所经过的总天数
- 洛谷 p1567 统计天数(求最大上升子序列)
- 计算两个人的出生日期相差的天数
- 黑马程序员-计算从你出生到今天为止的总天数?
- 信息学奥林匹克竞赛-统计最长天数
- SQL Server 用存储过程统计每月旷工,病假的天数!(初学随笔)
- 首页文章字数统计改进
- Hadoop的改进实验(中文分词词频统计及英文词频统计) 博文目录结构
- P1567 统计天数
- ASP.NET 统计连续签到天数
- 第十七周项目四——日期结构体(2)求出生日相差天数
- 宝宝成长天数统计
- Hadoop的改进实验(中文分词词频统计及英文词频统计)(1/4)
- zabbix通过jmx监控tomcat, Nginx日志统计方案全过程,切割nginx和tomcat日志并删除指定天数前的日志记录
- 数学建模--医疗保险欺诈的发现--模型:评价类的数学模型和多元统计模型--方法:”改进的”主成分分析,聚类分析,判别分析,相关分析