最近写了一段求给定日期的前一天的日期的一个程序,虽然简单,但也有点收获
程序如下:

import java.util.Scanner;public class PreDate {public static boolean isCorrect(int year,int month,int day){boolean flag=false;if(year>=1812 && year<=2017)if(month>=1 && month<=12){if(month==2){if(year%4==0 && year%100!=0 || year%400==0){if(day<=29 && day>=1)flag=true;}else if(day<=28 && day>=1)flag=true;}else if(month==4 || month==6 || month==9 || month==11){if(day>=1 && day<=30)flag=true;}else{if(day>=1 && day<=31)flag=true;}}return flag;}public static void main(String[] args) {// TODO Auto-generated method stubint year,month,day;Scanner sc = new Scanner(System.in);System.out.print("请输入年份:");year = sc.nextInt();System.out.print("请输入月份:");month = sc.nextInt();System.out.print("请输入天数:");day = sc.nextInt();sc.close();System.out.println("输入的日期是"+year+"年"+month+"月"+day+"日");if(isCorrect(year,month,day)){if(month==1){if(day==1){year--;month=12;day=31;}}else if(month==3){if(day==1){month--;if(year%4==0 && year%100!=0 || year%400==0)day=29;elseday=28;}elseday--;}else if(month==5 || month==7 || month==10 || month==12){if(day==1){month--;day=30;}elseday--;}else{if(day==1){month--;day=31;}elseday--;}System.out.println("前一天日期为"+year+"年"+month+"月"+day+"日");}else{System.out.println("日期输入错误,请检查年月日是否正确");}}
}

程序前面的静态函数是用来判断输入的日期是否正确。与NextDate不一样的是,对于天数的判断只需要判断其是否为1,这样才会判断其月份是否需要减1,对于NextDate而言则是需要判断其是否为28,29,30,31.这样才能接着判断月份是否加1.

在写程序的时候出了一些小失误,开始的isCorrect()函数我没有将其声明为static类型,然后便直在main()里没有创建对象便直接调用了。然后程序就有了bug。这是因为,调用非静态函数的时候,得先实例化对象,为其分配了空间才能进行下去。而静态方法就不同了,其在程序载入时就已经分配了空间,这样就可以直接调用了。看来还是得多练习一下,避免这样的小错误。

前一日函数PreDate(static方法与非static的区别)相关推荐

  1. static方法与非static方法是否可以互相调用

    情况一.static方法调用非static方法 非静态方法只有实例对象才可调用,而静态方法随着类的加载而加载,类的加载在实例对象产生之前,所以静态方法不能调用非静态方法 情况二.非atic方法调用st ...

  2. 无法从 static 上下文引用非 static 方法

    作为JAVA初学者总会碰到许多问题,今天这个问题比较基础,但是对于只看了一些书的我来说还是比较困难,通过搜索大致了解到: 1.用static修饰的方法称为静态方法,修饰变量则为静态变量,又分别叫做类方 ...

  3. PHP类的静态(static)方法和静态(static)变量使用介绍

    在php中,访问类的方法/变量有两种方法: 1. 创建对象$object = new Class(),然后使用"->"调用:$object->attribute/fun ...

  4. 夹具PHP,PHP类的静态(static)方法和静态(static)变量

    在php中,访问类的方法/变量有两种方法: 1. 创建对象$object = new Class(),然后使用"->"调用:$object->attribute/fun ...

  5. 一个static方法内可以调用非static方法吗?

    不可以. 因为非 static 方法是要与对象关联在一起的,必须创建一个对象后,才可以在该对象上进行方法调用,而 static 方法调用时不需要创建对象,可以直接调用. 也就是说,当一个 static ...

  6. java static方法

    static方法 1.static方法的作用访问static变量和static方法2.static方法的调用方式通过类名调用.通过对象名来访问3.不可以静态方法中不可以访问非静态变量 静态方法中不可以 ...

  7. 关于static方法

    方法的多态static理解 要强调的是,,多态性只发生于方法,而不发生于域.并且,对于方法,只有那些非static与非final方法才具有多态性. 这里讨论的是static方法不能发生多态.值得注意的 ...

  8. java static用法_Java中static关键字的作用和用法详细介绍

    static表示"全局"或者"静态"的意思,用来修饰成员变量和成员方法,也可以形成静态static代码块,但是Java语言中没有全局变量的概念. 被static ...

  9. java中static x 5_java中static作用详解

    static表示"全局"或者"静态"的意思,用来修饰成员变量和成员方法,也可以形成静态static代码块,但是Java语言中没有全局变量的概念. 被static ...

最新文章

  1. Oracle 表空间扩容
  2. AI市场扩大催生多样化标注需求
  3. Java字节流文件流的练习
  4. 学会python编程容易吗-老男孩学Python编程后薪资待遇高吗?
  5. Jdk1.6 JUC源码解析(1)-atomic-AtomicXXX
  6. Maven自動化構建工具
  7. Linux信号 五 信号挂起与信号掩码操作接口集
  8. java泛型约束_JAVA泛型 - 约束与局限性
  9. IT人员健康信号之颈椎病自疗
  10. LIS(基于贪心的O(NlogN)解法)
  11. Python基础之:函数
  12. 炁体源流 鸿蒙,一人之下:八绝技中最强被曝光,没想到炁体源流落榜,第一在后头...
  13. shell的建立与执行实验报告_实验七 Shell脚本运行的优化
  14. 在Winform的DataGridView的单元格中同时显示文本和图标,以及树形结构的示例
  15. 归纳整理一些工作学习中发现的不错的网站、博客地址等(转载)
  16. 荷小鱼 x mPaaS | 借助 H5 容器改善 App 白屏、浏览器兼容等问题
  17. 应用层协议 ——— HTTP协议
  18. C#反射基础知识实例总结
  19. 玩游戏提示计算机内存不足怎么办,打开软件提示内存不足怎么办?电脑提示内存不足解决办法...
  20. python捕获屏幕的标准库_Python标准库urllib2的使用和获取网站状态举例

热门文章

  1. 思科网络技术学院:CCNA各学期章节练习-期末考试-折扣号考试试题
  2. 关于uni-app获取设备的iccid
  3. 从另一种角度理解量子力学
  4. yum安装包时出现is a duplicate with
  5. 中兴 面试2020-09-21
  6. 读《骨干是折腾出来的》有感
  7. 地震勘探原理(四)之频谱分析概述
  8. python语法认为条件x=y=z是合法的-python if条件判断语句
  9. Winform控件开发(15)——contextMenuStrip(史上最全)
  10. java利用jaudiotagger随机将MP3分割成小段