首页 > 其他分享 >设计异常处理类Cexception,并基于异常处理类设计并实现日期类Date

设计异常处理类Cexception,并基于异常处理类设计并实现日期类Date

时间:2023-04-18 15:14:02浏览次数:36  
标签:Cexception self month 日期 year Date 异常 day

定义一个异常类Cexception解决日期类实现中的自定义异常处理。设计的日期类应包含以下内容:

①  有三个成员数据:年、月、日;

②  有设置日期的成员函数;

③  有用格式"月/日/年"输出日期的成员函数;

④  要求在日期设置及有参构造函数中添加异常处理。

class Cexception :
    def __init__(self,year,month,day):
        if Cexception.judge(year,month,day) :
            self.year = year
            self.month = month
            self.day = day
        else:
            self.year = -1
            self.month = -1
            self.day = -1
            print("日期有误")
    def setTime(self,year,month,day):
        if Cexception.judge(year,month,day) :
            self.year = year
            self.month = month
            self.day = day
        else:
            self.year = -1
            self.month = -1
            self.day = -1
            print("日期有误")
    def display(self):
        if self.month ==-1 or  self.year == -1 or self.day == -1:
            print("",end="")
        else:
            print(str(self.month)+"/"+str(self.day)+"/"+str(self.year))
    def judge(year,month,day):
        leap = False
        legal = False
        if year>0:
            if year % 4 == 0 and year % 100 != 0 or year % 400 == 0:
                leap = True
            if month in [1, 3, 5, 7, 8, 10, 12]:
                if 1 <= day <= 31:
                    legal = True
            elif month in [4, 6, 9, 11]:
                if 1 <= day <= 30:
                    legal = True
            elif month == 2:
                if not leap and 1 <= day <= 28:
                    legal = True
                elif leap and 1 <= day <= 29:
                    legal = True
        else:
            legal = False
        return legal

c = Cexception(-1,8,5)
c.display()
c = Cexception(2018,8,2)
c.display()
c = Cexception(2019,5,29)
c.display()
c = Cexception(2020,5,8)
c.display()

 

标签:Cexception,self,month,日期,year,Date,异常,day
From: https://www.cnblogs.com/y1126/p/17329633.html

相关文章

  • invalid comparison: java.util.ArrayList and java.lang.String 异常分析及解决方法
    nvalidcomparison:java.util.ArrayListandjava.lang.String异常解决方法异常原因首先我们可以确定是在mybatis的xml中的list操作出现错误然后发现在接收list的时候加了判断list!=’’,导致list(数组集合类型)和空字符串(字符串类型)进行比较,故报错解决办法,对于list类型进......
  • sysaux表空间异常增长之统计信息数据未自动清理
    首先还是去查sysaux表空间中占用空间最多的组件和对象selectOCCUPANT_NAME,OCCUPANT_DESC,SPACE_USAGE_KBYTES/1024USAGE_MBfromV$SYSAUX_OCCUPANTSorderbySPACE_USAGE_KBYTESdesc;SELECTD.SEGMENT_NAME,D.SEGMENT_TYPE,SUM(BYTES)/1024/1024SIZE_MBFROMDBA_SEGME......
  • springboot统一响应实体封装+统一异常类管理
    前言:在日常前后端分离的接口开发过程中,需要我们按相应的格式给前端返回响应的数据,常见的方式就是我们后端自己封装一个包装类,每次返回给前端数据的时候都需要我们自己手动构建一。短时间内来看或许并没有什么,但是一旦接口量变大,我们每个接口都去构建返回值的话,那样就会浪费......
  • 使用whoops作为tp6的自定义异常
    安装composerrequirefilp/whoops在app/ExceptionHandle.php中的renderpublicfunctionrender($request,Throwable$e):Response{//添加自定义异常处理机制if(ENV('APP_DEBUG')){//如果是HttpResponseException异常则原样输出//JUMP插......
  • 虚拟机ubuntu22.4报错ok_update_request:I/oerror, dev fdo, sector 0 op OX0:(READ)tl
    ok_update_request:I/oerror,devfdo,sector0opOX0:(READ)tlags0x0phys_segprioclass0BufferI/oerrorondevfdo,logicalblock0,asyncpageread如下图 不管你用的HYPER-V创建虚拟机,还是VMVBOX等。只要找到这里: 把DVD/CD或者软驱修改为物理驱动器,即可。 ......
  • lambda表达式以及异常
    lambda表达式简化匿名内部类*****前提:​ 函数式接口:只有一个被重写的抽象方法的接口​ @FunctionalInterface强制检测一个接口是否为函数式接口语法:​ ()->{}​ ():重写抽象方法的参数列表​ ->:箭头函数,lambda符号​ {}:重写抽象方法的方法体函数式编程:将函数的实现......
  • Failed to process import candidates for configuration class [springfox.documenta
     org.springframework.beans.factory.BeanDefinitionStoreException:Failedtoprocessimportcandidatesforconfigurationclass[springfox.documentation.swagger2.configuration.Swagger2DocumentationConfiguration];nestedexceptionisjava.lang.IllegalArgumen......
  • Postman 如何传递 Date 类型参数
    背景最近在写一个接口,这里我就简单展示一下:http://127.0.0.1:3006/api/v1/date他的作用是把用户端的当前时间发送到后端去,方便后端对于用户行为的行为埋点~开始前我们可以先回顾下:了解Postman:这个API工具的功能和用途是什么?调试此接口发现问题使用了Postman进行调试此接口,但是......
  • mysql异常处理
    ################一、主从不一致误登录从库写入数据:第一步在从库上停掉SQL线程:stopslavesql_thread;磁盘空间不足:删除归档日志,保留30天,setglobalexpire_logs_days=15; PURGEMASTERLOGSBEFORE'2020-03-1500:00:00';purgebinarylogsbefore‘2020-08-0300:00:00’;清理......
  • c#中的异常处理
    try、catch、finally异常是程序在执行过程中出现了错误,就像汽车行驶过程中刹车失灵或爆胎了,如果程序没有提供处理该异常的代码,系统会挂起这个程序(就是死掉了,崩掉了)。c#中处理异常,需要用到try、catch(可以写多个该部分)、finally这三个代码块。具体作用见下图:尤其注意Final......