JAVA 判断输入日期是否合法,求某日期n天后的日期,两日期之间相距的天数
来源:互联网 发布:淘宝联盟代购推广 编辑:程序博客网 时间:2024/05/29 15:19
这里只是为了满足用java语言来完成这个程序,并不能体现java的优势所在,希望能给你们提供一点点的帮助,其实思路还是不错的。
毕竟太渣,不过是换个语言的形式罢了.....
package nicai;import java.util.Scanner;public class Main {static int[] MonthDay={0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; ///定义一个常规每月天数的数组;public static boolean RUN(int year){ ///定义一个判断闰年的方法if(year%400==0 || (year%4==0 && year%100!=0))return true;return false;}public static void main(String[] args) {Scanner cin = new Scanner(System.in);int year, month, day, n, y1, m1, d1;///判断输入的日期是否合法;System.out.println("亲输入三个整数,分别代表年,月,日:");year = cin.nextInt();month = cin.nextInt();day = cin.nextInt();boolean flag = true;if(month<=0 || month>=13){flag=false;}if(month==1 || month==3 || month ==5 || month==7 || month==8 || month==10 || month ==12){if(day<=0 || day>=32){flag=false;}}else if(month==2){if(RUN(year)){ if(day<=0 || day>=30) flag=false;}else{if(day<=0 || day>=29)flag=false;}}else{if(day<=0 || day>=31){flag=false;}}if(flag==false){System.out.println("输入日期值不合法!");}else{System.out.println("输入日期值合法!");}System.out.println("亲输入三个整数,分别代表起始日期的年,月,日:");y1 = cin.nextInt();m1 = cin.nextInt();d1 = cin.nextInt();System.out.println("亲输入相隔的天数n:");n =cin.nextInt();System.out.println("n天后的日期是:");GETday(y1,m1,d1,n);///两日期之间相距的天数System.out.println("请输入 起始日期y1,m1,d1:");y1 = cin.nextInt();m1 = cin.nextInt();d1 = cin.nextInt();int y2, m2, d2;System.out.println("请输入 结束日期y2,m2,d2:");y2 = cin.nextInt();m2 = cin.nextInt();d2 = cin.nextInt();System.out.println("两日期相差天数为:");int[] yearday = new int[110000];yearday[0]=0; for(int i=1; i<=100000; i++) yearday[i]=yearday[i-1]+(RUN(i)==true ? 366 : 365); int tab[][] = {{0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}, {0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}}; int leap; int sum=0; if(y1==y2) { if(RUN(y1)) leap=1; else leap=0; for(int i=m1+1; i<m2; i++) sum+=tab[leap][i]; if(m1<m2) { sum+=tab[leap][m1]-d1; sum+=d2; } else sum+=d2-d1; System.out.println(sum); } else { if(RUN(y1)) leap=1; else leap=0; for(int i=m1+1; i<=12; i++) sum+=tab[leap][i]; sum+=tab[leap][m1]-d1; if(RUN(y2)) leap=1; else leap=0; for(int i=1; i<m2; i++) sum+=tab[leap][i]; sum+=d2; sum+=yearday[y2-1]-yearday[y1]; System.out.println(sum); } }///求某日期n天后的日期private static void GETday(int y1, int m1, int d1, int n) {int y2, m2, d2; y2=y1;m2=m1;d2=d1;int D=365;if(RUN(y2)){D=366;}while(true){if(n/D<=0)break;n=n-D;y2++;if(RUN(y2))D=366;}if(RUN(y2)){MonthDay[2]=29;}if((n+d2) <= MonthDay[m2]){d2 = n+d2;}else{d2 = n + d2 - MonthDay[m2];m2++;if(m2>=12){y2++;m2 = m2%12;}}System.out.println("相隔n天后的日期是:");System.out.println(y2+"-"+m2+"-"+d2);}}
0 0
- JAVA 判断输入日期是否合法,求某日期n天后的日期,两日期之间相距的天数
- 求两日期之间的天数
- //得到据某日期30天后的日期
- java计算两日期之间的天数
- Java计算两日期之间的天数
- 两日期之间的天数
- java编写任意两个日期相距的天数
- 给定一个日期,求N天后(前)的日期
- 判断输入的日期是否合法的javascript
- 如何判断日期变量的输入是否合法
- 判断输入日期是否合法
- mysql 求两个日期相距的大小
- 计算两日期之间的工作日天数
- 计算两日期之间的天数
- Android手机开发:日期函数之判断某日期格式是否之前+计算某日期之前N天或之后N天的日期
- 求两个日期之间相隔的天数
- 求两个日期之间相隔的天数
- 求日期之间的天数差
- hadoop自带的 balancer解析
- 年终奖问题
- java collection问题
- C++11 线程安全的BlockingQueue实现
- ARM7 LPC2378 远程升级----HEX文件
- JAVA 判断输入日期是否合法,求某日期n天后的日期,两日期之间相距的天数
- iOS开发进阶 - 使用Carthage管理iOS第三方库
- 15.Permutations-全排列(中等题)
- MFC中定时器的使用方法
- windbg的条件断点怎么下
- java实现递归版二分查找算法
- Linux环境下安装Zookeeper
- 单片机烧程序模块
- hdu 5889 Barricade (最短路+最小割)