• 闰年问题


    本周作业为写一个程序判断输入的年份是否为闰年。

    闰年有以下两种情况:

      1】输入年份%4 == 0 且 输入年份%100 != 0 为闰年;

      2】输入年份%400 == 0 为闰年。

    但是按照课上写的那段代码(见下方附)来看,使用时会有以下问题:

      1】输入的是一个字符串(如19a)

      2】输入的为负数(如-1900)

      3】输入的为空(null)的时候

      4】输入的为非常大的数超过了integer的范围

    课上写的:

    bool isLeapYear(int leap){

      return ((leap%4 == 0 && leap%100 != 0) || (leap%400 == 0))

    }

    所以为了处理这些问题,我加一个try-catch来捕捉并反馈错误。关键内容如下:

    bool isLeapYear(str s){

      ......

      try{

        int leapYear = Integer.parseInt(s);

        ..........//judge the entered number

            //include the judgement of negative number

      }catch(Exception e){

        table.setText("please enter rightly");

        ......

      }

      ......

    }

    但是有个问题。。

    如果是第四种情况,即输入一个很大的超出integer的数,就是代表很多很多很多年以后的一年是否是闰年。

    应该是可以计算这一年是否是闰年但是按照我的写法就会throw an exception。。。就不能算啦。。。

  • 相关阅读:
    Windows桌面开发之窗口
    imes系统完善
    Dos.ORM简单说明
    C# 调用C++ dll的方法
    Windows10内置Linux子系统(WSL)Vmmem内存占用过大问题
    Docker 常用命令
    Typora 激活
    C# LINQ去重
    Windows10内置Linux子系统(WSL)映射本地盘符
    00-mORMot安装
  • 原文地址:https://www.cnblogs.com/cassiecassie/p/4399181.html
Copyright © 2020-2023  润新知