Java下的日期函数实现

来源:java认证发布时间:2012-11-12 13:12:32java认证视频

  /**

  * 判断是否润年

  *

  * @param ddate

  * @return

  */

  public static boolean isLeapYear(String ddate) {

  /**

  * 详细设计: 1.被400整除是闰年,否则: 2.不能被4整除则不是闰年 3.能被4整除同时不能被100整除则是闰年

  * 3.能被4整除同时能被100整除则不是闰年

  */

  Date d = strToDate(ddate);

  GregorianCalendar gc = (GregorianCalendar) Calendar.getInstance();

  gc.setTime(d);

  int year = gc.get(Calendar.YEAR);

  if ((year % 400) == 0)

  return true;

  else if ((year % 4) == 0) {

  if ((year % 100) == 0)

  return false;

  else

  return true;

  } else

  return false;

  }

  /**

  * 返回美国时间格式 26 Apr 2006

  *

  * @param str

  * @return

  */

  public static String getEDate(String str) {

  SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");

  ParsePosition pos = new ParsePosition(0);

  Date strtodate = formatter.parse(str, pos);

  String j = strtodate.toString();

  String[] k = j.split(" ");

  return k[2] + k[1].toUpperCase() + k[5].substring(2, 4);

  }

  /**

  * 获取一个月的最后一天

  *

  * @param dat

  * @return

  */

  public static String getEndDateOfMonth(String dat) {// yyyy-MM-dd

  String str = dat.substring(0, 8);

  String month = dat.substring(5, 7);

  int mon = Integer.parseInt(month);

  if (mon == 1 || mon == 3 || mon == 5 || mon == 7 || mon == 8

  || mon == 10 || mon == 12) {

  str += "31";

  } else if (mon == 4 || mon == 6 || mon == 9 || mon == 11) {

  str += "30";

  } else {

  if (isLeapYear(dat)) {

  str += "29";

  } else {

  str += "28";

  }

  }

  return str;

  }

  /**

  * 判断二个时间是否在同一个周

  *

  * @param date1

  * @param date2

  * @return

  */

  public static boolean isSameWeekDates(Date date1, Date date2) {

  Calendar cal1 = Calendar.getInstance();

  Calendar cal2 = Calendar.getInstance();

  cal1.setTime(date1);

  cal2.setTime(date2);

  int subYear = cal1.get(Calendar.YEAR) - cal2.get(Calendar.YEAR);

  if (0 == subYear) {

  if (cal1.get(Calendar.WEEK_OF_YEAR) == cal2

  .get(Calendar.WEEK_OF_YEAR))

  return true;

  } else if (1 == subYear && 11 == cal2.get(Calendar.MONTH)) {

  // 如果12月的最后一周横跨来年第一周的话则最后一周即算做来年的第一周

  if (cal1.get(Calendar.WEEK_OF_YEAR) == cal2

  .get(Calendar.WEEK_OF_YEAR))

  return true;

  } else if (-1 == subYear && 11 == cal1.get(Calendar.MONTH)) {

  if (cal1.get(Calendar.WEEK_OF_YEAR) == cal2

  .get(Calendar.WEEK_OF_YEAR))

  return true;

  }

  return false;

  }

视频学习

我考网版权与免责声明

① 凡本网注明稿件来源为"原创"的所有文字、图片和音视频稿件,版权均属本网所有。任何媒体、网站或个人转载、链接转贴或以其他方式复制发表时必须注明"稿件来源:我考网",违者本网将依法追究责任;

② 本网部分稿件来源于网络,任何单位或个人认为我考网发布的内容可能涉嫌侵犯其合法权益,应该及时向我考网书面反馈,并提供身份证明、权属证明及详细侵权情况证明,我考网在收到上述法律文件后,将会尽快移除被控侵权内容。

最近更新

社区交流

考试问答