年份月数天数

问题:

  编写程序,使之所给的年份和月份,按照万年历的算法获知该年该月的天数,并输出结果。要求程序能反复运行,直至键入的年份和月份分别为2100年和12月为止。

分析:

  程序要求输入年份月份,输出该月的天数,应主要考虑闰年,闰年的2月有29天,非闰年的2月只有28天。按通常历法,每四年有一个闰年,那么每400年就有100个闰年,但这种算法有误差积累,年数多了就不准。所谓万年历是指使用一万年都能保持准确的历法,根据万年历的算法,每400年只能有97个闰年,不妨假设程序中的年份取1701年至2100年。可规定:在这400年中,凡能被4整除而不能被100整除的年份(有100-4=96),加上能被400整除的年份(1个,即2000年),均为闰年,其余都是非闰年。

 1 #include<stdio.h>
 2 int main()
 3 {
 4     int years,months,days;
 5     printf("请输入年份和相应的月份:");
 6     scanf("%d,%d",&years,&months);
 7     switch(months)
 8     {
 9         case 1:
10         case 3:
11         case 5:
12         case 7:
13         case 8:
14         case 10:
15         case 12:
16             days=31;
17             break;
18         case 4:
19         case 6:
20         case 9:
21         case 11:
22             days=30;
23             break;
24         case 2:
25             if((years%4==0&&years%100!=0)||(years%400==0))
26                 days=29;
27             else
28                 days=28;
29     }
30     printf("\n%d年%d月有%d天!\n",years,months,days);
31 }
32
33 /*#include<stdio.h>
34 int main(){
35     int year,month,days;
36     do{
37         do{
38             printf("请输入您想查询的年份和月份:");
39             scanf("%d %d",&year,&month);
40         }while(!((year>=1701&&year<=2100)&&(month>=1&&month<=12)));
41         if(!(year==2100&&month==12)){
42             switch(month)
43             {
44                 case 1:
45                 case 3:
46                 case 5:
47                 case 7:
48                 case 8:
49                 case 10:
50                 case 12:
51                     days=31;
52                     break;
53                 case 4:
54                 case 6:
55                 case 9:
56                 case 11:
57                     days=30;
58                     break;
59                 case 2:
60                     if(year%4==0&&year%100!=0||year%400==0)//判断是否为闰年
61                         days=29;
62                     else
63                         days=28;
64             }
65             printf("\n%d的%d月有%d天\n\n",year,month,days);
66         }
67     }while(!(year==2100&&month==12));
68     return 0;
69 }*/

  

原文地址:https://www.cnblogs.com/geziyu/p/8734908.html

时间: 2024-11-09 06:00:57

年份月数天数的相关文章

Java计算两个时间的天数差与月数差 LocalDateTime

/**  * 计算两个时间点的天数差  * @param dt1 第一个时间点  * @param dt2 第二个时间点  * @return int,即要计算的天数差  */ public static int dateDiff(LocalDateTime dt1,LocalDateTime dt2){  //获取第一个时间点的时间戳对应的秒数  long t1 = dt1.toEpochSecond(ZoneOffset.ofHours(0));  //获取第一个时间点在是1970年1月1日

运算符和表达式 、 分支结构 输入年份和月份,输出该月的天数(使用switch-case)

思路:三个板块,A.二月比较特殊,平年的二月只有28天,而闰年的二月有 29 天: B.4.6.9.11月: C.其他1.3.5.7.8.10.12月. import java.util.Scanner; public class DayOfMonth { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.println("请输入年份(例如:2012)&quo

java 日期加减天数、月数、年数的计算方式

因为某个项目需要统计 近1周.近1个月.近6个月 等数据,所以在时间的加减上面想了很多方式,最后决定用java.util.Calendar java.util.Calendar ,提供了计算时间的方式, Calendar.DATE  : 代表天数 Calendar.WEDNESDAY: 代表周数 Calendar.MONTH : 代表月数 Calendar.YEAR :代表年数 具体计算方式如下: 1. 计算近一周的日期,也就是得出过去7天的时间段,如今天2015-07-21  ,一个星期前那就

MySQL计算两个日期相差的天数、月数、年数

MySQL自带的日期函数TIMESTAMPDIFF计算两个日期相差的秒数.分钟数.小时数.天数.周数.季度数.月数.年数,当前日期增加或者减少一天.一周等等. SELECT TIMESTAMPDIFF(类型,开始时间,结束时间) 相差的秒数: SELECT TIMESTAMPDIFF(SECOND,'1993-03-23 00:00:00',DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i:%S')) 相差的分钟数: SELECT TIMESTAMPDIFF(MINUTE,'

一个方法得到哪年的哪个月的天数?

参数为年份和月份,输出结果为指定月的天数 只需函数strtotime() <?php Function day_count($year,$month){ Echo date("t",strtotime($year."-".$month)); } echo day_count('2015','2');

显示某个月的天数

import java.util.Scanner; public class Days { public static void main(String[] args){ Scanner input = new Scanner(System.in); int day = 0; System.out.println("请输入年份:"); int year = input.nextInt(); System.out.println("请输入月份:"); int mont

【统计商户24个月连续流水总月数存储过程】

[统计商户24个月连续流水总月数存储过程]删除存储过程SQL> drop procedure checklen; Procedure dropped创建存储过程SQL> CREATE OR REPLACE PROCEDURE checklen(val in varchar2,resultval out number) as    maxlen number;    nowlen number;    begin    maxlen := 0;    nowlen := 0;        fo

R语言两种方式求指定日期所在月的天数

             R语言两种方式求指定日期所在月的天数 days_monthday<-function(date){ m<-format(date,format="%m") days31<-c("01","03","05","07","08","10","12") days30<-c("04",&

iOS 获取今年指定月的天数

//调用 NSInteger i = [self howManyDaysInThisMonth:2]; NSLog(@"%ld",(long)i); // 获取今年指定月的天数 - (NSInteger)howManyDaysInThisMonth :(NSInteger)imonth { int year = [[self years][0] intValue]; if((imonth == 1)||(imonth == 3)||(imonth == 5)||(imonth == 7