输入两个年份,求两个年份之间的闰年与个数

1.	1.  01.1.上机内容:C++程序的编写和运行    
2.	2.  02.    
3.	3.  03.上机目的:编程序,输入过程,输出结果    
4.	4.  04.    
5.	5.  05.我的程序:.    
6.	6.  07.2./*    
7.	7.  08.3.* 程序的版权和版本声明部分:    
8.	8.  09.4.* Copyright (c) 2013, 烟台大学计算机学院    
9.	9.  10.5.* All rights reserved.    
10.	10. 11.6.* 文件名称:test.cpp    
11.	11. 12.7.* 作    者:张立锋    
12.	12. 13.8.* 完成日期:2013 年 11 月 6 日    
13.	13. 14.9.* 版 本 号:v1.0    
14.	14. 15.10.* 对任务及求解方法的描述部分:    
15.	15. 16.11.* 输入描述:无    
16.	16. 17.12.* 问题描述:    
17.	17. 18.13.* 程序输出:    
18.	18. 19.14.* 问题分析:略    
19.	19. 20.15.* 算法设计:略    
20.	20. 21.16.*    

#include <iostream>

using namespace std;

void year()
{
    int int beginyear,int endyear,i,sum=0;
    cin>>beginyear>>endyear;
       for(i=beginyear;i<=endyear;i++)
    {
        if(i%400==0||i%4=&#
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
第十四章 函数进阶 14.1 分解与抽象 案例 日期运算 给定日期由月日(3个整数,的取值在1970~2050间)组成,完成以下功能: (1)判定给定日期的合法性。 (2)计算两个日期相差的天数。 (3)计算一个日期加上一个整数后对应的日期。 (4)计算一个日期减去一个整数后对应的日期。 (5)计算一个日期是星期几。 分析: 1.判断给定日期的合法性 首先判断年份是否在1970~2050之间,然后判断月份是否在1~12之间,最后判断日的合法性。当月份为1、3、5、7、8、10、12时,日在1~31之间;月份为4、6、9、11时,日在1~30之间;月份为2时,若闰年,日在1~29之间,不为闰年在1~28之间闰年:year%4==0&&year0;!=0||year@0==0 2.计算两个日期相差的天数 计算日期A和日期B相差天数,A小于B且A与B不在同一时,把天数分为三段: (1)A到A所在年份12月31日的天数; (2)A所在年份后整部分(A、B在相邻年份时无整部分); (3)B所在年份1月1日到B的天数。 若A小于B且A、B在同一,直接在计算。 3.计算一个日期加上一个整数后对应的日期。 4.计算一个日期减去一个整数后对应的日期。 5.计算一个日期是星期几。 计算日期A为星期几,先找一个知道为星期几的参照日期B,通过计算A和B的相差天数,就可计算出日期A星期几。 例:日期综合运算。 #include<stdio.h> #include<stdlib.h> /*日期结构体*/ struct date { int year; int month; int day; }; /*二维数组,第0行是闰年每月天数,第1行是非闰年每月天数 */ int m[2][12]= {{31,29,31,30,31,30,31,31,30,31,30,31}, {31,28,31,30,31,30,31,31,30,31,30,31}}; /*判断闰年,是返回1,不是返回0*/ int leap(int y) { if(y%4==0&&y0;!=0||y@0==0) return 1; else return 0; } /*将给定日期转换成从19701月1日到该日期经过的天数*/ int dateToDays(struct date d) { int sum=0,i; /*把整的天数累加到sum中*/ for(i=1970; i<d.year; i++) sum+=leap(i)+365; /*闰年时返回1,多加一天*/ /*不够整的month之前的整月天数累加到sum中*/ if(leap(d.year)) for(i=0; i<d.month-1; i++) sum+=m[0][i]; else for(i=0; i<d.month-1; i++) sum+=m[1][i]; sum+=d.day; return sum; } /*将给定天数转换成从19701月1日经过该天数的日期*/ struct date daysToDate(int days) {

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值