精华内容
下载资源
问答
  •  printf("该29天!");  }  else  {  printf("该28天!");  }  break;  case 1:  case 3:  case 5:  case 7:  case 8:  case 10:  case 12:printf("该有31天!");break;  ...

    #include <stdio.h>
    #include <stdlib.h>

    int main()
    {
        int x, y, z;
        printf("请输入一个年份和月份:");
        scanf("%d %d",&x,&y);
        if(y>0 && y<=12)
        {
            switch(y)
            {

                case 2:
                    if(y==2&&(0 == x%4) && (0 != x%100) ||(0 == x%400))
                    {
                        printf("该月有29天!");

                    }
                    else
                    {
                        printf("该月有28天!");
                    }
                     break;
                case 1:
                case 3:
                case 5:
                case 7:
                case 8:
                case 10:
                case 12:printf("该月有31天!");break;
                case 4:
                case 6:
                case 9:
                case 11:printf("该月有30天!");break;
            }
        }

        else
            {
                printf("输入的是非法值!");
            }

        return 0;
    }

    展开全文
  • 代码: 1 import java.util.*; 2 public class Main { 3 public static void main (String [] args) { 4 Scanner s=new Scanner(System.in); 5 int y=s.nextInt(); ...

     

     

     

    代码:

     1 import java.util.*;
     2 public class Main {
     3     public static void main (String [] args) {
     4         Scanner s=new Scanner(System.in);
     5         int y=s.nextInt();
     6         int m=s.nextInt();
     7         int d=0;
     8         if(m==1||m==3||m==5||m==7||m==8||m==10||m==12)
     9         {
    10             d=31;
    11         }
    12         else if(m==4||m==6||m==9||m==11)
    13         {
    14             d=30;
    15         }
    16         else if(m==2) {
    17             if(y%400==0||(y%100!=0&&y%4==0))
    18             {
    19                 d=29;
    20             }
    21             else {d=28;}                
    22             }
    23         System.out.println(d);
    24     }
    25 }

     

    转载于:https://www.cnblogs.com/fandehui/p/11048338.html

    展开全文
  • month = input("请输入月份:") if month.isdigit(): month = int(month) if month in [1, 3, 5, 7, 9, ...此月份有31") elif month in [4, 6, 9, 11]: print("此月份有30") elif ...
    month = input("请输入月份:")
    if month.isdigit():
        month = int(month)
        if month in [1, 3, 5, 7, 9, 10, 12]:
            print("此月份有31天")
        elif month in [4, 6, 9, 11]:
            print("此月份有30天")
        elif month == 2:
            year = input("请输入年份:")
            if (year % 4 == 0 and year % 100 != 0) or (year % 400 == 0):
                print("此月份为29天")
            else:
                print("此月份为28天")
        else:
            print("输入有误")
    else:
        print("请重新输入")
    展开全文
  • 上次写了查询5之内过生日的同事中的跨年问题的解决过程,其中漏了一个闰年2月29日生日的细节问题,现在补充一下这个问题的处理过程: 5,补充闰年判断 有朋友提醒,闰年2月29日生日的话,可能查询不到,想到...

    前言:

    上次写了查询5天之内过生日的同事中的跨年问题的解决过程,其中漏了一个闰年2月29日生日的细节问题,现在补充一下这个问题的处理过程:

     

    5,补充闰年判断

    有朋友提醒,闰年2月29日生日的话,可能查询不到,想到确实没有考虑到这个特殊的日期。
    5.1,准备测试数据SQL,包含1980-02-29这一天生日的朋友。
    INSERT INTO ali_users  SELECT 'Jeff','1980-02-29','13998786549' 
    UNION ALL SELECT 'WeiYa','1980-02-28','13998786549' 
    UNION ALL SELECT 'XiaoTeng','1980-03-01','13998786549' 
    UNION ALL SELECT 'HeSheng','1980-03-02','13998786549'
    UNION ALL SELECT 'JingPan','1980-03-03','13998786549'
    UNION ALL SELECT 'WuHong','1986-03-04','13998786549';

    5.2,录入测试数据

     

    mysql> use test;

    Reading table information for completion of table and column names

    You can turn off this feature to get a quicker startup with -A

     

    Database changed

    mysql> INSERT INTO ali_users SELECT \'Jeff\',\'1980-02-29\',\'13998786549\' UNION ALL SELECT \'XiaoTeng\',\'1980-03-01\',\'13998786549\' 

        -> UNION ALL SELECT \'HeSheng\',\'1980-03-02\',\'13998786549\'

        -> UNION ALL SELECT \'JingPan\',\'1980-03-03\',\'13998786549\'

        -> UNION ALL SELECT \'WuHong\',\'1986-03-04\',\'13998786549\';

    Query OK, 5 rows affected (0.00 sec)

    Records: 5 Duplicates: 0 Warnings: 0

     

    mysql>


    5.3,执行原来的旧版本的SQL查询检查结果

    把Step#2中的SQL的NOW()改成'2014-02-28 00:10:10'来进行测试,确实没有包括2月29日生日的同事,如下所示:

     

    mysql> SELECT * FROM ali_users WHERE 

        -> DATEDIFF(CAST(CONCAT(YEAR(\'2014-02-28 00:10:10\'),DATE_FORMAT(birthday,\'-%m-%d\'))AS DATE),CAST(DATE_FORMAT(\'2014-02-28 00:10:10\',\'%y-%m-%d\') AS DATE)) BETWEEN 0 AND 4

        -> OR/* or后面的是捎带解决跨年问题*/ 

        -> DATEDIFF(CAST(CONCAT(YEAR(\'2014-02-28 00:10:10\')+1,DATE_FORMAT(birthday,\'-%m-%d\'))AS DATE),CAST(DATE_FORMAT(\'2014-02-28 00:10:10\',\'%y-%m-%d\') AS DATE)) BETWEEN 0 AND 4

        -> ;

    +----------+------------+-------------+

    | username | birthday | iphone |

    +----------+------------+-------------+

    | XiaoTeng | 1980-03-01 | 13998786549 |

    | HeSheng | 1980-03-02 | 13998786549 |

    | JingPan | 1980-03-03 | 13998786549 |

    | WuHong | 1986-03-04 | 13998786549 |

    +----------+------------+-------------+

    4 rows in set, 2 warnings (0.00 sec)

     

     

    mysql>


    5.4,先建立一个存储函数f_isleap_year判断当年年份是否是闰年
    5.4.1 准备判断是否闰年的SQL

     

    DELIMITER $$

    USE `test`$$

    DROP FUNCTION IF EXISTS `f_not_leap_year`$$

    CREATE FUNCTION `f_not_leap_year`(p_year BIGINT) RETURNS BOOLEAN

    BEGIN

    /*是闰年则返回0(false),不是闰年则返回1(true)*/

    DECLARE v_flag INT DEFAULT 0;

    /*①、普通年能被4整除且不能被100整除的为闰年。(如2004年就是闰年,1901年不是闰年)*/

    IF (p_year%4)=0 AND (p_year%100)>0 THEN

    SET v_flag=0; 

    /*②、世纪年能被400整除的是闰年。(如2000年是闰年,1900年不是闰年) */

    ELSEIF (p_year%400)=0 THEN

    SET v_flag=0; 

    /*③、对于数值很大的年份,这年如果能整除3200,并且能整除172800则是闰年。如172800年是闰年,

    86400年不是闰年(因为虽然能整除3200,但不能整除172800)(此按一回归年365天5h48\'45.5\'\'计算)。

    */

    ELSEIF (p_year%3200)=0 AND (p_year%172800)=0 THEN

    SET v_flag=0;

    ELSE

    SET v_flag=1;

    END IF;

    RETURN v_flag;

     END$$

    DELIMITER ;


    存储函数执行如下图所示:
     


    5.4.2 准备SQL语句

     

    SELECT * FROM ali_users WHERE 

    DATEDIFF(CAST(CONCAT(YEAR(NOW()),DATE_FORMAT(birthday,\'-%m-%d\'))AS DATE),CAST(DATE_FORMAT(NOW(),\'%y-%m-%d\') AS DATE)) BETWEEN 0 AND 4

    OR/* or后面的是捎带解决跨年问题*/ 

    DATEDIFF(CAST(CONCAT(YEAR(NOW())+1,DATE_FORMAT(birthday,\'-%m-%d\'))AS DATE),CAST(DATE_FORMAT(NOW(),\'%y-%m-%d\') AS DATE)) BETWEEN 0 AND 4

    OR /*补充闰年2月29日的生日问题*/

    (

    f_not_leap_year(YEAR(NOW()))

    AND DATE_FORMAT(birthday,\'-%m-%d\')=\'-02-29\' 

    AND DATEDIFF(CAST(CONCAT(\'2000\',DATE_FORMAT(birthday,\'-%m-%d\'))AS DATE),CAST(CONCAT(\'2000\',DATE_FORMAT(NOW(),\'-%m-%d\')) AS DATE)) 

    BETWEEN 0 AND 4

    );


    5.4.3 在非闰年的时候,验证闰年2月29日生日,选择2014年非闰年测试
    把Step#2中的SQL的NOW()改成'2014-02-28 00:10:10'来进行测试,SQL如下所示:

    SELECT * FROM ali_users WHERE 
    DATEDIFF(CAST(CONCAT(YEAR('2014-02-28 00:10:10'),DATE_FORMAT(birthday,'-%m-%d'))AS DATE),CAST(DATE_FORMAT('2014-02-28 00:10:10','%y-%m-%d') AS DATE)) BETWEEN 0 AND 4
    OR/* or后面的是捎带解决跨年问题*/ 
    DATEDIFF(CAST(CONCAT(YEAR('2014-02-28 00:10:10')+1,DATE_FORMAT(birthday,'-%m-%d'))AS DATE),CAST(DATE_FORMAT('2014-02-28 00:10:10','%y-%m-%d') AS DATE)) BETWEEN 0 AND 4
    OR /*补充闰年2月29日的生日方法*/
    (
    f_not_leap_year(YEAR('2014-02-28 00:10:10')) 
    AND DATE_FORMAT(birthday,'-%m-%d')='-02-29' 
    AND DATEDIFF(CAST(CONCAT('2000',DATE_FORMAT(birthday,'-%m-%d'))AS DATE),CAST(CONCAT('2000',DATE_FORMAT('2000-02-28 00:10:10','-%m-%d')) AS DATE)) 
    BETWEEN 0 AND 4
    );

    执行SQL检验成果,如果当天是2014-02-28,看到已经有2月29日的生日的同事被记录进来了,其实包含了2月28日、2月29日、3月1日、3月2日、3月3日、3月4日的生日的同事。
    PS:因为2月29日在当年不存在,所以不算这5天之内的范畴,执行结果如下所示:

     

    mysql> SELECT * FROM ali_users WHERE 

        -> DATEDIFF(CAST(CONCAT(YEAR(\'2014-02-28 00:10:10\'),DATE_FORMAT(birthday,\'-%m-%d\'))AS DATE),CAST(DATE_FORMAT(\'2014-02-28 00:10:10\',\'%y-%m-%d\') AS DATE)) BETWEEN 0 AND 4

        -> OR/* or后面的是捎带解决跨年问题*/ 

        -> DATEDIFF(CAST(CONCAT(YEAR(\'2014-02-28 00:10:10\')+1,DATE_FORMAT(birthday,\'-%m-%d\'))AS DATE),CAST(DATE_FORMAT(\'2014-02-28 00:10:10\',\'%y-%m-%d\') AS DATE)) BETWEEN 0 AND 4

        -> OR /*补充闰年2月29日的生日方法*/

        -> (

        -> f_not_leap_year(YEAR(\'2014-02-28 00:10:10\')) 

        -> AND DATE_FORMAT(birthday,\'-%m-%d\')=\'-02-29\' 

        -> AND DATEDIFF(CAST(CONCAT(\'2000\',DATE_FORMAT(birthday,\'-%m-%d\'))AS DATE),CAST(CONCAT(\'2000\',DATE_FORMAT(\'2000-02-28 00:10:10\',\'-%m-%d\')) AS DATE)) 

        -> BETWEEN 0 AND 4

        -> );

    +----------+------------+-------------+

    | username | birthday | iphone |

    +----------+------------+-------------+

    | Jeff | 1980-02-29 | 13998786549 |

    | XiaoTeng | 1980-03-01 | 13998786549 |

    | HeSheng | 1980-03-02 | 13998786549 |

    | JingPan | 1980-03-03 | 13998786549 |

    | WuHong | 1986-03-04 | 13998786549 |

    | WeiYa | 1980-02-28 | 13998786549 |

    +----------+------------+-------------+

    6 rows in set, 2 warnings (0.00 sec)

     

     

    mysql>


    5.4.4 在闰年的时候,验证闰年2月29日生日,选择2004年闰年测试
    把Step#2中的SQL的NOW()改成'2004-02-28 00:10:10'来进行测试,SQL如下所示:

     

    SELECT * FROM ali_users WHERE 

    DATEDIFF(CAST(CONCAT(YEAR(\'2004-02-28 00:10:10\'),DATE_FORMAT(birthday,\'-%m-%d\'))AS DATE),CAST(DATE_FORMAT(\'2004-02-28 00:10:10\',\'%y-%m-%d\') AS DATE)) BETWEEN 0 AND 4

    OR/* or后面的是捎带解决跨年问题*/ 

    DATEDIFF(CAST(CONCAT(YEAR(\'2004-02-28 00:10:10\')+1,DATE_FORMAT(birthday,\'-%m-%d\'))AS DATE),CAST(DATE_FORMAT(\'2004-02-28 00:10:10\',\'%y-%m-%d\') AS DATE)) BETWEEN 0 AND 4

    OR /*补充闰年2月29日的生日方法*/

    (

    f_not_leap_year(YEAR(\'2004-02-28 00:10:10\')) 

    AND DATE_FORMAT(birthday,\'-%m-%d\')=\'-02-29\' 

    AND DATEDIFF(CAST(CONCAT(\'2000\',DATE_FORMAT(birthday,\'-%m-%d\'))AS DATE),CAST(CONCAT(\'2000\',DATE_FORMAT(\'2004-02-28 00:10:10\',\'-%m-%d\')) ASDATE)) 

    BETWEEN 0 AND 4

    );


    执行SQL检验成果,如果当天是2004-02-28,看到已经有2月29日的生日的同事被记录进来了,其实包含了2月28日、2月29日、3月1日、3月2日、3月3日的生日的同事。
    PS:因为2月29日在当年存在,所以算这5天之内的范畴,执行结果如下所示:

     

    mysql> SELECT * FROM ali_users WHERE 

        -> DATEDIFF(CAST(CONCAT(YEAR(\'2004-02-28 00:10:10\'),DATE_FORMAT(birthday,\'-%m-%d\'))AS DATE),CAST(DATE_FORMAT(\'2004-02-28 00:10:10\',\'%y-%m-%d\') AS DATE)) BETWEEN 0 AND 4

        -> OR/* or后面的是捎带解决跨年问题*/ 

        -> DATEDIFF(CAST(CONCAT(YEAR(\'2004-02-28 00:10:10\')+1,DATE_FORMAT(birthday,\'-%m-%d\'))AS DATE),CAST(DATE_FORMAT(\'2004-02-28 00:10:10\',\'%y-%m-%d\') AS DATE)) BETWEEN 0 AND 4

        -> OR /*补充闰年2月29日的生日方法*/

        -> (

        -> f_not_leap_year(YEAR(\'2004-02-28 00:10:10\')) 

        -> AND DATE_FORMAT(birthday,\'-%m-%d\')=\'-02-29\' 

        -> AND DATEDIFF(CAST(CONCAT(\'2000\',DATE_FORMAT(birthday,\'-%m-%d\'))AS DATE),CAST(CONCAT(\'2000\',DATE_FORMAT(\'2004-02-28 00:10:10\',\'-%m-%d\')) AS DATE)) 

        -> BETWEEN 0 AND 4

        -> );

    +----------+------------+-------------+

    | username | birthday | iphone |

    +----------+------------+-------------+

    | Jeff | 1980-02-29 | 13998786549 |

    | XiaoTeng | 1980-03-01 | 13998786549 |

    | HeSheng | 1980-03-02 | 13998786549 |

    | JingPan | 1980-03-03 | 13998786549 |

    | WeiYa | 1980-02-28 | 13998786549 |

    +----------+------------+-------------+

    5 rows in set (0.00 sec)

     

     

    mysql>

    展开全文
  • } int dayOfMonth(int year, int month) { if (month == 2) { if (Leap_year(year)) return 29; else return 28; } switch (month) { case 1: case 3: case 5: case 7: case 8: case 10: case 12: return 31; break...
  • 用js的Date,本来是要获取上个月的1号,很自然的用下面的代码: var startDate = new Date();...之前没有问题,今天3月29日,测试时发现,上月变成了3月1日,而不是正常的2月1日。 经测试,3月...
  • js显示年月日(润年2月29天

    千次阅读 2014-09-11 10:00:46
    getDate(day,1,29): getDate(day,1,28)//在如果是2月的前提下如果是润年则一个月有29年,否则为28天 }else if(val == 4 || val == 6 || val == 9 || val == 11){ //如果是一个月30天的月份 getDate(day,1,30); ...
  • 题目:输入某年某月某日,判断这一天是这一年的第几天 首先我们需要知道闰年和平年如何区分,公历闰年的计算方法 1.普通年能被4整除且不能被100整除的闰年。...闰年的二月为29天,平年的为28天.而在...
  • 一年中有12个月,每个月的天数是不一样的,其中有7个月31天称为大月,分别1,3,5,7,8,10,12月, 有4个月30天,称为小月,分别4,6,9,11月,还有二月较特殊,平年的二月28天,而润年的二月29天,请输入年份和...
  • 输入某年某某日,判断这一是这一年的第几
  • 闰年的二月29天,非闰年二月28天,要想判断某一年是否是闰年,就是计算某一年的二月有多少天 代码如下 import java.util.Calendar; import java.util.Scanner; public class FebruaryDay { public static void...
  • 判断某一年是 “平年”||“闰年”,一有多少。 using System; using System.Threading.Tasks.Sources; namespace stars { class Program { static void Main(string[] args) { //for循环只是为了在控制台...
  • 是否有一种方法可以使用Python的标准库轻松确定(即一个函数调用)给定月份的最后一?如果标准库不支持,那么dateutil包是否支持此功能?我是唯一一个认为你在要求Python的最后一的人吗?:d[20081124从回复移动到...
  • 练习题题目:输入某年某某日,判断这一是这一年的第几?(Python)
  • def mouthRange(beginDate, endDate, shu_day, schedule_time): dates = [] new_mouths = [] dt = datetime.datetime.strptime...此代码也可以找到每的最后一,也就是每最后一执行,包含特殊月份的处理
  • C语言:计算某年某月某日是这一年的第几 我是一名在校大学生,初次写博客,希望各位大佬不喜勿喷,这个小程序,...2.MonthNum()函数,根据用户输入的年,判断出2月的天数和其他月的天数。 3.Calculate()函数,将...
  • 判断某年某有多少(C语言)

    千次阅读 2021-05-20 07:20:30
    本文带来各类奇怪的IT百科知识。从键盘输入某年某月:包括...已知闰年的2月29天:平年有28天。#include :stdio.h:int main() {int year,month;scanf(:%d %d:,:year,:month);printf(:Please enter year and...
  • 取某的最后一的方法

    千次阅读 2020-12-20 18:14:32
    经常我们遇到这样的问题:一是,某的最后一29,30,还是31 呢?。是,返回某的最后一。这个问题如果,不留神,SQL中有关日期的语句,包含错误的日期,那么就要出错,那么这个怎么解决呢?请参照以下...
  • 月份有多少

    千次阅读 2018-04-16 07:58:12
    时间限制: 1 Sec 内存限制: 64 MB题目描述根据现行公历历法,月份的天数一般是28天,但是如果是闰年的月份就是29天。给定某个年份,你是否能确定月份到底有多少天吗?输入第一行包含一个整数n(1≤n≤100),...
  • 闰年二月为29天,平年二月为28天! 如果年份能被4整除且不能被100整除的,或者能被400整除的闰年,其余平年! 代码如下: x=input("please enter the date:(such as:2020.2.1 )") a,b,c=x.split(".") a=int(a) b...
  • public class javaDemo1 { public static void main(String[] args) { ... System.out.println("请输入你的年,"); int year = sc.nextInt(); int mouth = sc.nextInt(); int num = 0; int.
  • 最近遇到这样的编程题目,给出年、、日,计算该日是该年第n,经过自己思考后,编写程序如下,也考虑到了闰年和非年的问题,有详细的注释解释问题。 #include &lt;stdio.h&gt; int main() { int ...
  • 2.思路:因为要考虑到每个最后一28,29,30,还是31号所以正常思维来做很麻烦;这里我们换一种思路: 找到上个的第一,这里是:2017年71日;我们再让日期减一,这样,Calendar会自动帮你跳到6最后一...
  • Python新人代码如下:year = int(input('请输入年份:'))momth = int(input('请输入月份:'))day = int(input('请输入几号'))if ...= 0) or (year % 400 ==0):if momth == 1:print(day)elif momth ==2:print(31 ...
  • 免费文章,只希望能帮助大家。收费不是我的初衷。 我想写过Java,C#,js....... 1.戳进行格式化成自己想要的。例如[2019年0801日,2019-08-01,...2.将时间日期格式转化时间戳,知道日期例如2019年0801日,20...
  • 题目:输入某年某某日,判断这一是这一年的第几。方法一: year=int(input()) month=int(input()) day=int(input()) if month==1: count=day elif month==2: count = 31+day elif (month&gt;=3) and (...
  • C语言 两种方法优化:输入一个日期的年、、日,计算并输出这天是该年的第几
  • JS获取下个的第一天和最后一

    千次阅读 2020-02-10 12:15:45
    /*获取下个的第一*/ nextMonthFirstDay() { var time = new Date(); var year = time.getFullYear(); var month = time.getMonth() + 2; if (month > 12) { month = month -...
  • android 中确定某一个有多少

    千次阅读 2019-01-09 15:40:44
    3、平年的2月28天,闰年2月29天 4、4月、6月、9月、11月各是30天 5、1月、3月、5月、7月、8月、10月、12月各是31天 SO,知道了当前年,或者在当前往后推多少年,在知道是某一个月后,就可以推测出这个月有...
  • 自定义1个函数day_of_year(year, month, day),计算并返回年year、month和日day对应的是该年的第几。 函数接口定义:`int day_of_year(year, month, day); year, month, day分别输入的年,,日 裁判测试程序...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 97,907
精华内容 39,162
关键字:

为什么二月是29天或28天