當前位置:編程學習大全網 - 編程語言 - 用java編寫出壹個以下方法計算兩個日期之間天數的程序設計。

用java編寫出壹個以下方法計算兩個日期之間天數的程序設計。

想寫壹個代碼就把下面標識符改壹下就行了

import?java.util.regex.Matcher;

import?java.util.regex.Pattern;

public?class?第幾天?{

public?static?void?main(String[]?args)?{

try?{

System.out.println(相差天數("2016-7-30",?"2015-7-30"));

}?catch?(Exception?e)?{

e.printStackTrace();

}

}

private?static?Pattern?p?=?Pattern.compile("(\\d{4})-(\\d{1,2})-(\\d{1,2})");

public?static?int?相差天數(String?a,?String?b)?throws?Exception?{

Matcher?m?=?p.matcher(a);

if?(!m.matches())

throw?new?Exception();

int?y1?=?Integer.parseInt(m.group(1));

int?m1?=?Integer.parseInt(m.group(2));

int?d1?=?Integer.parseInt(m.group(3));

m?=?p.matcher(b);

if?(!m.matches())

throw?new?Exception();

int?y2?=?Integer.parseInt(m.group(1));

int?m2?=?Integer.parseInt(m.group(2));

int?d2?=?Integer.parseInt(m.group(3));

return?相差天數(y1,?m1,?d1,?y2,?m2,?d2);

}

public?static?int?相差天數(int?y1,?int?m1,?int?d1,?int?y2,?int?m2,?int?d2)?{

return?總第幾天(y1,?m1,?d1)?-?總第幾天(y2,?m2,?d2);

}

public?static?int?總第幾天(int?y,?int?m,?int?d)?{

int?a?=?(y?-?1)?*?365?+?(y?-?1)?/?4?-?(y?-?1)?/?100?+?(y?-?1)?/?400;

return?a?+?年第幾天(y,?m,?d);

}

public?static?int?年第幾天(int?y,?int?m,?int?d)?{

return?閏年(y)潤年月前天數[m]?+?d?:?平年月前天數[m]?+?d;

}

public?static?boolean?閏年(int?年)?{

return?年?%?400?==?0?||?(年?%?4?==?0?&&?年?%?100?!=?0);

}

private?static?final?int[]?平年月天數?=?{?0,?31,?28,?31,?30,?31,?30,?31,?31,?30,?31,?30,?31?};

private?static?final?int[]?平年月前天數?=?new?int[14],?潤年月前天數?=?new?int[14];

static?{

int?n?=?0;

for?(int?i?=?1;?i?<=?12;?i++)?{

平年月前天數[i]?=?n;

潤年月前天數[i]?=?i?>?2n?+?1?:?n;

n?+=?平年月天數[i];

}

平年月前天數[13]?=?n;

潤年月前天數[13]?=?n?+?1;

}

}

  • 上一篇:廣州數控車床的980T系統對刀步驟是怎樣的?
  • 下一篇:MS-DOS批處理文件是什麽?
  • copyright 2024編程學習大全網