(JAVA)时间相关辅助类

import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

/**
 * 时间处理相关辅助类<br>
 *
 * patternString相应的说明如下:<br>
 * y:年 ; M:月 ; d:日 ; <br>
 * H:时 ; m:分 ; s:秒 ; <br>
 * S:毫秒 <br>
 * E:星期几(这里多个E也只能显示一次(如:星期三)) <br>
 *
 * 多个相应的字母时,表示该值显示N位 <br>
 * 
 *
 * @since 2012-04-25
 *
 *
 */
public class DateRelatedUtils {
 /**
  * 实例化一个 Calendar 对象
  */
 private static Calendar calendar = Calendar.getInstance();

 /**
  * 将Date转换成相应的patternString格式
  *
  * @param basicDate
  *            时间
  * @param patternString
  *            格式
  * @return String
  *
  */
 public static String getFormattedDateAsString(Date basicDate,
   String patternString) {

  SimpleDateFormat dateFormater = new SimpleDateFormat(patternString);

  // 返回格式化后的时间串
  return dateFormater.format(basicDate);

 }

 /**
  * 返回加addDays天后的串,addDays可以为负数<br>
  * patternString:只能是年月日相应的不同格式
  *
  * @param basicDate
  *            时间
  * @param addDays
  *            加的天数
  * @param patternString
  * @return String
  */
 public static String addDaysAsString(Date basicDate, int addDays,
   String patternString) {

  // 得到加了天数后的时间
  basicDate = addDays(basicDate, addDays);

  // 返回相应格式的时间串
  return getFormattedDateAsString(basicDate, patternString);
 }

 /**
  * 计算两个日期相隔的天数<br>
  * 两个值不分前后,求绝对值
  *
  * @param firstDate
  * @param secondDate
  * @return Integer
  */
 public static int getGapDays(Date firstDate, Date secondDate) {

  // 先拿到两个日期 年月日 后边的时分秒不管了
  String patternString = "yyyy-MM-dd";
  String firstDateString = getFormattedDateAsString(firstDate,
    patternString);
  String secondDateString = getFormattedDateAsString(secondDate,
    patternString);

  // 转换成Date对象
  firstDate = getDateByDateString(firstDateString, patternString);
  secondDate = getDateByDateString(secondDateString, patternString);

  int nDays = (int) ((secondDate.getTime() - firstDate.getTime()) / (24 * 60 * 60 * 1000));

  return Math.abs(nDays);
 }

 /**
  * 计算两个日期相隔的天数
  *
  * @param firstString
  *            格式yyyy-MM-dd
  * @param secondString
  *            格式yyyy-MM-dd
  * @return Integer
  */
 public static int getGapDays(String firstString, String secondString) {
  SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
  Date firstDate = null;
  Date secondDate = null;

  try {
   firstDate = df.parse(firstString);
   secondDate = df.parse(secondString);
  } catch (Exception e) {
   e.printStackTrace();
   // 日期型字符串格式错误
   throw new IllegalArgumentException("日期型字符串格式错误!");
  }

  return getGapDays(firstDate, secondDate);
 }

 /**
  * 将指定格式的日期串转化为日期对象
  *
  * @param basicDate
  *            时间
  * @param patternString
  *            输入的时间串的格式
  * @return Date
  * @throws Exception
  */
 public static Date getDateByDateString(String basicDate,
   String patternString) {

  SimpleDateFormat df = new SimpleDateFormat(patternString);

  Date date = null;

  try {
   date = df.parse(basicDate);
  } catch (Exception ex) {
   throw new IllegalArgumentException("日期串与格式串不匹配或者格式串有误!");
  }

  return date;
 }

 /**
  * 得到basicDate这一年的第一天
  *
  * @return Date
  */
 public static Date getFirstDayOfYear(Date basicDate) {

  calendar.setTime(basicDate);
  calendar.set(Calendar.YEAR, calendar.get(Calendar.YEAR));
  calendar.set(Calendar.MONTH, Calendar.JANUARY);
  calendar.set(Calendar.DAY_OF_MONTH, 1);

  return calendar.getTime();

 }

 /**
  * 得到basicDate这一年的第一天
  *
  * @param basicDate
  *            时间
  * @param patternString
  *            返回串格式
  * @return String
  */
 public static String getFirstDayOfYearAsString(Date basicDate,
   String patternString) {

  // 得到这一年的第一天
  basicDate = getFirstDayOfYear(basicDate);

  // 返回相应格式的时间串
  return getFormattedDateAsString(basicDate, patternString);

 }

 /**
  * 得到basicDate这一年的最后一天
  *
  * @param basicDate
  *            时间
  * @return Date
  */
 public static Date getLastDayOfYear(Date basicDate) {

  calendar.setTime(basicDate);
  calendar.set(Calendar.YEAR, calendar.get(Calendar.YEAR));
  calendar.set(Calendar.MONTH, Calendar.DECEMBER);
  calendar.set(Calendar.DAY_OF_MONTH, 31);

  return calendar.getTime();

 }

 /**
  * 得到basicDate这一年的最后一天
  *
  * @param basicDate
  *            时间
  * @param patternString
  *            返回串格式
  * @return String
  */
 public static String getLastDayOfYearAsString(Date basicDate,
   String patternString) {

  // 得到这一年的最后一天
  basicDate = getLastDayOfYear(basicDate);

  // 返回相应的时间格式串
  return getFormattedDateAsString(basicDate, patternString);

 }

 /**
  * 得到basicDate 这一月的第一天
  *
  * @param basicDate
  *            时间
  * @return Date
  */
 public static Date getFirstDayOfMonth(Date basicDate) {

  calendar.setTime(basicDate);
  calendar.add(Calendar.MONTH, 0);
  calendar.set(Calendar.DAY_OF_MONTH, 1);

  return calendar.getTime();

 }

 /**
  * 得到basicDate 这一月的第一天
  *
  * @param basicDate
  *            时间
  * @param patternString
  *            格式
  * @return String
  */
 public static String getFirstDayOfMonthAsString(Date basicDate,
   String patternString) {
  // 得到这一月的第一天
  basicDate = getFirstDayOfMonth(basicDate);
  // 返回相应的时间格式串
  return getFormattedDateAsString(basicDate, patternString);
 }

 /**
  * 得到basicDate 这一月的最后一天
  *
  * @param basicDate
  *            时间
  * @return Date
  */
 public static Date getLastDayOfMonth(Date basicDate) {

  calendar.setTime(basicDate);
  calendar.add(Calendar.MONTH, 1);
  calendar.set(Calendar.DAY_OF_MONTH, 1);
  calendar.add(Calendar.DAY_OF_MONTH, -1);

  return calendar.getTime();

 }

 /**
  * 得到basicDate 这一月的最后一天
  *
  * @param basicDate
  *            时间
  * @param patternString
  *            格式
  * @return String
  */
 public static String getLastDayOfMonthAsString(Date basicDate,
   String patternString) {
  // 得到这一月的最后一天
  basicDate = getLastDayOfMonth(basicDate);
  // 返回相应的时间格式串
  return getFormattedDateAsString(basicDate, patternString);
 }

 /**
  * 得到basicDate的下个月初
  *
  * @param basicDate
  *            时间
  * @return Date
  */
 public static Date getFirstDayOfLastMonth(Date basicDate) {

  calendar.setTime(basicDate);
  calendar.add(Calendar.MONTH, 1);
  calendar.set(Calendar.DAY_OF_MONTH, 1);

  return calendar.getTime();

 }

 /**
  * 得到basicDate 下一月月初
  *
  * @param basicDate
  *            时间
  * @param patternString
  *            格式
  * @return String
  */
 public static String getFirstDayOfLastMonthAsString(Date basicDate,
   String patternString) {
  // 得到下月月初
  basicDate = getFirstDayOfLastMonth(basicDate);
  // 返回相应的时间格式串
  return getFormattedDateAsString(basicDate, patternString);
 }

 /**
  * 按中国人的习惯 得到basicDate 这周的第一天(周一)
  *
  * @param basicDate
  *            时间
  * @return Date
  */
 public static Date getFirstDayOfWeekAsDateForChinese(Date basicDate) {

  calendar.setTime(basicDate);
  if(calendar.get(Calendar.DAY_OF_WEEK) != 1) {
   calendar.add(Calendar.DAY_OF_MONTH, 0);
   calendar.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
  } else {
   calendar.setTime(addDays(basicDate, -6));
  }

  return calendar.getTime();

 }

 /**
  * 按中国人的习惯得到basicDate 这周的第一天(周一)
  *
  * @param basicDate
  *            时间
  * @param patternString
  *            格式
  * @return String
  */
 public static String getFirstDayOfWeekAsStringForChinese(Date basicDate,
   String patternString) {
  // 得到这周第一天
  basicDate = getFirstDayOfWeekAsDateForChinese(basicDate);
  // 返回相应的时间格式串
  return getFormattedDateAsString(basicDate, patternString);
 }

 /**
  * 按中国人的习惯得到basicDate 这周的最后一天(周日)
  *
  * @param basicDate
  *            时间
  * @return Date
  */
 public static Date getLastDayOfWeekAsDateForChinese(Date basicDate) {

  calendar.setTime(basicDate);
  
  if(calendar.get(Calendar.DAY_OF_WEEK) != 1) {
   calendar.add(Calendar.DAY_OF_MONTH, 0);
   calendar.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
   calendar.add(Calendar.DAY_OF_MONTH, 6);
  }

  return calendar.getTime();

 }

 /**
  * 按中国人的习惯得到basicDate 这周的最后一天(周日)
  *
  * @param basicDate
  *            时间
  * @param patternString
  *            格式
  * @return String
  */
 public static String getLastDayOfWeekAsStringForChinese(Date basicDate,
   String patternString) {
  // 得到这周最后一天
  basicDate = getLastDayOfWeekAsDateForChinese(basicDate);
  // 返回相应的时间格式串
  return getFormattedDateAsString(basicDate, patternString);
 }

 /**
  * 按美国人习惯得到 basicDate 这周的第一天(周日为一周的第一天)
  *
  * @param basicDate
  * @return
  */
 public static Date getFirstDayOfWeekAsDate(Date basicDate) {
  if (basicDate == null) {
   return null;
  } else {
   calendar.setTime(basicDate);
   int weekindex = calendar.get(7);
   Date firstDay = addDays(basicDate, (weekindex - weekindex * 2) + 1);
   return firstDay;
  }
 }

 /**
  * 按美国人习惯得到 basicDate 这周的第一天(周日为一周的第一天)
  *
  * @param basicDate
  *            时间
  * @param patternString
  *            格式
  * @return
  */
 public static String getFirstDayOfWeekAsString(Date basicDate,
   String patternString) {
  if (basicDate == null) {
   return null;
  } else {
   Date firstDay = getFirstDayOfWeekAsDate(basicDate);
   return getFormattedDateAsString(firstDay, patternString);
  }
 }

 /**
  * 按美国人习惯得到 basicDate 这周的最后一天(周六为一周的最后一天)
  *
  * @param basicDate
  *            时间
  * @return
  */
 public static Date getLastDayOfWeekAsDate(Date basicDate) {
  if (basicDate == null) {
   return null;
  } else {
   calendar.setTime(basicDate);
   int weekindex = calendar.get(7);
   Date lastDay = addDays(basicDate, 7 - weekindex);
   return lastDay;
  }
 }

 /**
  * 按美国人习惯得到 basicDate 这周的最后一天(周六为一周的最后一天)
  *
  * @param basicDate
  *            时间
  * @param patternString
  *            格式
  * @return
  */
 public static String getLastDayOfWeekAsString(Date basicDate,
   String patternString) {
  if (basicDate == null) {
   return null;
  } else {
   Date lastDay = getLastDayOfWeekAsDate(basicDate);
   return getFormattedDateAsString(lastDay, patternString);
  }
 }

 /**
  * 判断是否润年<br>
  * <br>
  * &nbsp;&nbsp;true 是闰年<br>
  * &nbsp;&nbsp;false 不是闰年
  *
  * @param basicDate
  *            时间
  * @return boolean
  */
 public static boolean isLeapYear(Date basicDate) {
  /*
   * 1.被400整除是闰年 2.不能被400整除的且能被4整除且不能被100整除的是闰年 3.其他的都不是闰年
   */
  // 默认不是闰年
  boolean flag = false;

  calendar.setTime(basicDate);

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

  /* 判断各种是闰年的情况修改flag的值 */
  // 能被400整除
  if ((year % 400) == 0) {
   flag = true;
   // 能被4整除 && 不能被100整除则是闰年
  } else if ((year % 4) == 0 && (year % 100) != 0) {
   flag = true;
  }

  // 其他情况都不是闰年

  return flag;
 }

 /**
  * 返回basicDate 是 星期几
  *
  * @param basicDate
  *            时间
  * @return String
  */
 public static String getDayOfWeekByDate(Date basicDate) {
  return getFormattedDateAsString(basicDate, "E");
 }

 /**
  * 得到年份
  *
  * @param basicDate
  *            时间
  * @return
  */
 public static int getYear(Date basicDate) {
  calendar.setTime(basicDate);
  return calendar.get(Calendar.YEAR);
 }

 /**
  * 得到月份
  *
  * @param basicDate
  *            时间
  * @return
  */
 public static int getMonth(Date basicDate) {
  calendar.setTime(basicDate);
  return calendar.get(Calendar.MONTH) + 1;
 }

 /**
  * 得到日
  *
  * @param basicDate
  *            时间
  * @return
  */
 public static int getDay(Date basicDate) {
  calendar.setTime(basicDate);
  return calendar.get(Calendar.DATE);
 }

 /**
  * 得到时
  *
  * @param basicDate
  *            时间
  * @return
  */
 public static int getHour(Date basicDate) {
  calendar.setTime(basicDate);
  return calendar.get(Calendar.HOUR_OF_DAY);
 }

 /**
  * 得到分
  *
  * @param basicDate
  *            时间
  * @return
  */
 public static int getMinute(Date basicDate) {
  calendar.setTime(basicDate);
  return calendar.get(Calendar.MINUTE);
 }

 /**
  * 得到秒
  *
  * @param basicDate
  *            时间
  * @return
  */
 public static int getSecond(Date basicDate) {
  calendar.setTime(basicDate);
  return calendar.get(Calendar.SECOND);
 }

 /**
  * 得到年龄
  *
  * @param birthDate
  *            出生日期
  * @return
  */
 public static int getAge(Date birthDate) {

  if (getYear(new Date()) - getYear(birthDate) < 0) {
   throw new IllegalArgumentException("生日小于当前日期");
  }

  return getYear(new Date()) - getYear(birthDate);
 }

 /**
  * 根据Date得到Calendar对象
  *
  * @param basicDate
  *            时间
  * @return Calendar
  */
 public static Calendar getCalendarByDate(Date basicDate) {
  calendar.setTime(basicDate);
  return calendar;
 }

 /**
  * 根据Calendar得到Date
  *
  * @param thiscalendar
  *            Calendar對象
  * @return
  */
 public static Date getDateByCalendar(Calendar thiscalendar) {
  return thiscalendar.getTime();
 }

 /**
  * 辅助用于在日期上加时间
  *
  * @param date
  * @param calendarField
  * @param amount
  * @return
  */
 private static Date add(Date date, int calendarField, int amount) {
  if (date == null) {
   throw new IllegalArgumentException("The date must not be null!");
  } else {
   calendar.setTime(date);
   calendar.add(calendarField, amount);
   return calendar.getTime();
  }
 }

 /**
  * 在时间上加年
  *
  * @param basicDate
  *            时间
  * @param amount
  *            增量
  * @return Date
  */
 public static Date addYears(Date basicDate, int amount) {
  return add(basicDate, Calendar.YEAR, amount);
 }

 /**
  * 在时间上加月
  *
  * @param basicDate
  *            时间
  * @param amount
  *            增量
  * @return Date
  */
 public static Date addMonths(Date basicDate, int amount) {
  return add(basicDate, Calendar.MONTH, amount);
 }

 /**
  * 在时间上加周
  *
  * @param basicDate
  *            时间
  * @param amount
  *            增量
  * @return
  */
 public static Date addWeeks(Date basicDate, int amount) {
  return add(basicDate, Calendar.WEEK_OF_YEAR, amount);
 }

 /**
  * 在时间上加天数
  *
  * @param basicDate
  *            时间
  * @param amount
  *            增量
  * @return Date
  */
 public static Date addDays(Date basicDate, int amount) {

  return add(basicDate, Calendar.DATE, amount);
 }

 /**
  * 在时间上加小时
  *
  * @param basicDate
  *            时间
  * @param amount
  *            增量
  * @return Date
  */
 public static Date addHours(Date basicDate, int amount) {
  return add(basicDate, Calendar.HOUR_OF_DAY, amount);
 }

 /**
  * 在时间上加分
  *
  * @param basicDate
  *            时间
  * @param amount
  *            增量
  * @return Date
  */
 public static Date addMinutes(Date basicDate, int amount) {
  return add(basicDate, Calendar.MINUTE, amount);
 }

 /**
  * 在时间上加秒
  *
  * @param date
  *            时间
  * @param amount
  *            增量
  * @return Date
  */
 public static Date addSeconds(Date date, int amount) {
  return add(date, Calendar.SECOND, amount);
 }

 /**
  * 在时间上加毫秒
  *
  * @param date
  *            时间
  * @param amount
  *            增量
  * @return Date
  */
 public static Date addMilliseconds(Date date, int amount) {
  return add(date, Calendar.MILLISECOND, amount);
 }

 /**
  * 将秒转换成 HH:mm:ss 格式
  *
  * @param seconds
  * @return
  */
 public static String getHHmmss(long seconds) {

  long h = seconds / 3600L;
  long j = seconds % 3600L;
  long m = j / 60L;
  long s = j % 60L;

  String hh = String.valueOf(h);
  String mm = String.valueOf(m);
  String ss = String.valueOf(s);

  if (hh.length() < 2) {
   hh = (new StringBuilder("0")).append(hh).toString();
  }
  if (mm.length() < 2) {
   mm = (new StringBuilder("0")).append(mm).toString();
  }
  if (ss.length() < 2) {
   ss = (new StringBuilder("0")).append(ss).toString();
  }
  return (new StringBuilder(String.valueOf(hh))).append(":").append(mm)
    .append(":").append(ss).toString();

 }

 /**
  * 根据时间得到相应的long值
  *
  * @param basicDate
  *            时间
  * @return
  */
 public static long getTimeMillisByDate(Date basicDate) {
  return basicDate.getTime();
 }

 /**
  * 生成(>=min&&<=max)随机数
  *
  * @param min
  * @param max
  * @return
  */
 public static long getRondom(long min, long max) {
  return (long) (Math.random() * (max - min) + min);
 }

 /**
  * 得到当前时间串
  *
  * @return
  */
 public static String getCurrentDateString() {
  return getFormattedDateAsString(new Date(), "yyyy-MM-dd HH:mm:ss");
 }

 /**
  * 判断是否周末(周六、周天)
  *
  * @param basicDate
  * @return
  */
 public static boolean isWeekEnd(Date basicDate) {
  boolean flag = false;

  calendar = getCalendarByDate(basicDate);
  int dayOfWeek = calendar.get(Calendar.DAY_OF_WEEK);
  if (dayOfWeek == Calendar.SATURDAY || dayOfWeek == Calendar.SUNDAY) {
   flag = true;
  }

  return flag;
 }

 /**
  * 在源日期(basicDate)基础上加上amount个工作日(除去周六和周日)
  *
  * @param basicDate
  * @param amount
  * @return
  */
 public static Date addWorkDays(Date basicDate, int amount) {

  calendar = getCalendarByDate(basicDate);
  // 是否周末(周六和周日) 标识
  boolean weekEndFlag = false;

  for (int i = 0; i < amount; i++) {

   // 把源日期加一天
   calendar.add(Calendar.DAY_OF_MONTH, 1);

   // 判断是否周末
   weekEndFlag = isWeekEnd(calendar.getTime());

   // 是周末的话,时间照加,但是i的值不算数,就倒退 1
   if (weekEndFlag) {
    i--;
   }
  }
  return calendar.getTime();
 }
 
 /*public static void main(String args[]) {
  System.out.println();
 }*/
 
}


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 211,948评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,371评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,490评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,521评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,627评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,842评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,997评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,741评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,203评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,534评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,673评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,339评论 4 330
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,955评论 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,770评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,000评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,394评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,562评论 2 349

推荐阅读更多精彩内容

  • 最近项目中用到自定义日历组件,找来找去,最后发现GitHub的material-calendarview这个项目最...
    colin2017阅读 1,509评论 0 0
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,633评论 18 139
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,598评论 18 399
  • 一、 1、请用Java写一个冒泡排序方法 【参考答案】 public static void Bubble(int...
    独云阅读 1,355评论 0 6
  • 亲子日记,星期一,阴 晚上吃完饭,女儿把自己的裤袜洗了,顺手把弟弟的上衣也给洗了,告诉我把衣服洗得很干净很自信地对...
    幸福宝贝米阅读 175评论 0 0