中文字幕在线观看,亚洲а∨天堂久久精品9966,亚洲成a人片在线观看你懂的,亚洲av成人片无码网站,亚洲国产精品无码久久久五月天

Java計算兩個日期相差多少天

2018-07-20    來源:open-open

容器云強勢上線!快速搭建集群,上萬Linux鏡像隨意使用
/* 
 * 從鍵盤輸入一個日期,格式為yyyy-M-d 
    要求計算該日期與1949年10月1日距離多少天 
    例如: 
    用戶輸入了:1949-10-2 
    程序輸出:1 
    用戶輸入了:1949-11-1 
    程序輸出:31 
*/  
import java.util.Arrays;  
import java.util.Scanner;  
public class Demo09 {  
    static int[][] days = { // 定義平年days[0]和閏年days[1]  
    {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}};  

    // 字符串轉(zhuǎn)換 整數(shù)  
    public static int[] conversion(String s) {  
        String[] ss = s.split("\\-");  
        int[] t = new int[3];  
        t[0] = Integer.parseInt(ss[0]);  
        t[1] = Integer.parseInt(ss[1]);  
        t[2] = Integer.parseInt(ss[2]);  
        return t;  
    }  
    // 計算任意一年內(nèi)的總天數(shù) (是365還是366)  
    public static int calcDay(int y,int m,int d){  
        int sum = d;    // 每一年的總天數(shù) (初始化為最后一個月的天數(shù))  
        int i = 0;      // 平年下標為 0  
        if((y%4==0&&y%100!=0)||(y%400==0)) i = 1; // 閏年下標為 1  
        for(int j=0;j<m;j++){  
            sum += days[i][j];  
        }  
        return sum;  
    }  
    // 判斷是否交換輸入的兩個日期 (日期小者放前)  
    public static void isSwap(int[] o,int[] n){  
        if(o[0]>n[0]){   // 日期內(nèi)容交換  
            for(int i=0;i<o.length;i++){  
                int t = o[i];  
                o[i] = n[i];  
                n[i] = t;  
            }  
        }  
    }  
    // 輸出  
    public static String p(int[] s){  
        StringBuffer sb = new StringBuffer();  
        for(int i=0;i<s.length-1;i++){  
            sb.append(s[i]+"-");  
        }  
        sb.append(s[s.length-1]);  
        return sb.toString();  
    }  
    // 計算總天數(shù)  
    public static int calc(int[] o, int[] n) {  
        int sum;  
        if(n[0]==o[0]){ // 如果年份相等,側直接計算天數(shù)  
            sum = calcDay(n[0],n[1],n[2])-calcDay(o[0],o[1],o[2]);  // 大的日期天數(shù)-小的日期天數(shù)  
        }else{  
            sum = calcDay(o[0],12,31)-calcDay(o[0],o[1],o[2]);  // 得到第一年日期到下一年開始的天數(shù)  
            for(int i=o[0]+1;i<n[0];i++){    // 中間的每年天數(shù) (不包含第一年和最后一年)  
                sum += calcDay(i,12,31);  
            }  
            sum += calcDay(n[0],n[1],n[2]); // 加上最后一年的天數(shù)  
        }  
        return sum;  
    }  
    public static void main(String[] args){  
//      int[] o = conversion("1949-10-2");  
        Scanner scan = new Scanner(System.in);  
        System.out.print("輸入日期格式為:(1949-10-2)\n輸入第一個日期:");  
        int[] o = conversion(scan.nextLine());  
        System.out.print("輸入第二個日期:");  
        int[] n = conversion(scan.nextLine());  
        int sum = 0;    // 總和  
        isSwap(o,n);    // 如果o日期小于n日期,側交換  
        sum = calc(o, n);   // 計算總天數(shù)  
        System.out.println(p(o)+" 到 "+p(n)+"\n距離"+sum+"天");  
    }  
}

標簽: swap

版權申明:本站文章部分自網(wǎng)絡,如有侵權,請聯(lián)系:west999com@outlook.com
特別注意:本站所有轉(zhuǎn)載文章言論不代表本站觀點!
本站所提供的圖片等素材,版權歸原作者所有,如需使用,請與原作者聯(lián)系。

上一篇: iOS 實現(xiàn)文件的拷貝

下一篇:java操作oracle常用的示例代碼