前一日函数PreDate(static方法与非static的区别)
来源:互联网 发布:怎么分辨mac口红真假 编辑:程序博客网 时间:2024/06/12 19:12
最近写了一段求给定日期的前一天的日期的一个程序,虽然简单,但也有点收获
程序如下:
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 stub int 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; else day=28; }else day--; }else if(month==5 || month==7 || month==10 || month==12){ if(day==1){ month--; day=30; }else day--; }else{ if(day==1){ month--; day=31; }else day--; } System.out.println("前一天日期为"+year+"年"+month+"月"+day+"日"); }else{ System.out.println("日期输入错误,请检查年月日是否正确"); } }}
程序前面的静态函数是用来判断输入的日期是否正确。与NextDate不一样的是,对于天数的判断只需要判断其是否为1,这样才会判断其月份是否需要减1,对于NextDate而言则是需要判断其是否为28,29,30,31.这样才能接着判断月份是否加1.
在写程序的时候出了一些小失误,开始的isCorrect()函数我没有将其声明为static类型,然后便直在main()里没有创建对象便直接调用了。然后程序就有了bug。这是因为,调用非静态函数的时候,得先实例化对象,为其分配了空间才能进行下去。而静态方法就不同了,其在程序载入时就已经分配了空间,这样就可以直接调用了。看来还是得多练习一下,避免这样的小错误。
0 0
- 前一日函数PreDate(static方法与非static的区别)
- 函数前加static与不加static的区别
- synchronized修饰static方法与非static方法的区别
- static方法和非static方法的区别(java)
- java static块和static方法及static方法和非static方法的区别
- static函数和非static函数的区别
- 多线程下synchronized修饰static方法与非static方法的区别
- synchronized修饰非static方法与修饰static方法的区别
- 多线程下synchronized修饰static方法与非static方法的区别
- static函数(非成员函数)与普通函数的区别
- static方法与非static方法相互调用的方式
- Java的static方法与非static方法
- 【Java】static方法与非static方法
- Static 静态与非静态的区别
- static 静态方法 有什么优缺点 PHP中静态方法(static)与非静态方法的使用及区别
- static 静态方法 有什么优缺点 PHP中静态方法(static)与非静态方法的使用及区别
- static 静态方法 有什么优缺点 PHP中静态方法(static)与非静态方法的使用及区别
- static与非static
- 494_桌面悬浮窗
- Android开发:最全面、最易懂的Android屏幕适配解决方案
- InnoDB存储引擎——表
- PHP
- iOS导航栏切换界面时隐藏和显示
- 前一日函数PreDate(static方法与非static的区别)
- 数据结构--排序算法(冒泡排序&&快速排序&&鸽巢排序)
- 环形缓冲区
- python核心编程第二版
- 495_自定义饼状图
- C语言中结构体的三种初始化方式以及结构体作为传参传递
- 为什么静态方法中不能使用this和super关键字
- JavaScript基础之语法
- 模板以及泛型编程