`
longgangbai
  • 浏览: 7339290 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

项目中使用时间工具类

阅读更多

 

  项目中使用的时间工具类的主要的采用commons-lang中的时间类FastDateFormat,FastDateFormat具有线程安全等功能,使用比较方便。内部有许多工具类。可以随时调用。

 

public abstract class DateUtils {

 /**
  *
  */
 public static final String MATRIX_NULL_FLAG = "/";

 public static final long MILSEC_PER_DAY = 24 * 3600000;

 public static final FastDateFormat FAST_DAY_FORMATTER = FastDateFormat
   .getInstance("yyyy-MM-dd");

 public static final FastDateFormat FAST_MINUTE_FORMATTER = FastDateFormat
   .getInstance("yyyy-MM-dd HH:mm");

 public static final FastDateFormat FAST_SECOND_FORMATETR = FastDateFormat
   .getInstance("yyyy-MM-dd HH:mm:ss");
 public static final FastDateFormat FAST_SHORT_FORMATETR = FastDateFormat
   .getInstance("yyyyMMdd");
 public static final FastDateFormat FAST_ONLY_MINUTE_FORMATETR = FastDateFormat
   .getInstance("HH:mm");

 public static String getLastDate(int year, int month) {
  int[] monthDay = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
  if (year % 400 == 0 || (year % 4 == 0 && year % 100 != 0)) {
   monthDay[1] = 29;
  }
  int monthDayNum = monthDay[month - 1];
  String end = year + "-" + month + "-" + monthDayNum;
  return end;
 }

 /* 格式化日期为短形式 */
 public static String getShortDate(Date myDate) {
  return FAST_SHORT_FORMATETR.format(myDate);
 }

 /* 格式化日期为标准形式 */
 public static String formatDateTime(Date myDate, String pattern) {
  FastDateFormat format = FastDateFormat.getInstance(pattern);
  return format.format(myDate);
 }

 /* 判断myDate是否为null */
 public static Date isDate(Date myDate) {
  if (myDate == null)
   return new Date();
  return myDate;
 }

 public static Date currentDate() {
  return currentDate(null);
 }

 /**
  *
  * @return
  */
 public static Date currentDate(DateFormat format) {
  Date today = new Date();
  if (format != null) {
   String string = format.format(today);
   today = parse(string, format);
  }
  return today;
 }

 /**
  * 查询当天的前n天的具体时间
  *
  * @param n
  * @return
  */
 public static String getCurrentDateBefore(int n) {
  Calendar day = Calendar.getInstance();
  day.add(Calendar.DATE, -n);
  SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
  String result = sdf.format(day.getTime());
  return result;
 }

 /**
  * 日期差(time1 - time2,返回负数,若time1在time2之前)
  *
  * @param time1
  * @param time2
  * @return
  */
 public static long getQuot(Date time1, Date time2) {
  long quot = 0;

  try {
   Date date1 = time1;
   Date date2 = time2;
   quot = date1.getTime() - date2.getTime();
   quot = quot / 1000 / 60 / 60 / 24;
  } catch (Exception e) {
   e.printStackTrace();
  }
  return quot;
 }

 /**
  * 日期差(忽略时间部分,time1 - time2,返回负数,若time1在time2之前)
  *
  * @param time1
  * @param time2
  * @return
  */
 public static long getQuoteIgnoreTime(Date time1, Date time2) {
  return getQuot(truncate(time1, Calendar.DATE), truncate(time2,
    Calendar.DATE));
 }

 // 判断日期为星期几,1为星期日com.vnvtrip.util,依此类推
 public static int dayOfWeek(Object date1) {
  Date date = (Date) date1;
  // 首先定义一个calendar,必须使用getInstance()进行实例化
  Calendar aCalendar = Calendar.getInstance();
  // 里面野可以直接插入date类型
  aCalendar.setTime(date);
  // 计算此日期是一周中的哪一天
  int x = aCalendar.get(Calendar.DAY_OF_WEEK);
  return x;
 }

 public static String dayOfWeek2(Object date1) {
  Date date = (Date) date1;
  // 首先定义一个calendar,必须使用getInstance()进行实例化
  Calendar aCalendar = Calendar.getInstance();
  // 里面野可以直接插入date类型
  aCalendar.setTime(date);
  // 计算此日期是一周中的哪一天
  int x = aCalendar.get(Calendar.DAY_OF_WEEK);
  return dayOfWeekByDayNum(x);
 }

 public static String dayOfWeekByDayNum(int x) {
  String str = "周日";
  if (x == 7) {
   str = "周六";
  } else if (x == 6) {
   str = "周五";
  } else if (x == 5) {
   str = "周四";
  } else if (x == 4) {
   str = "周三";
  } else if (x == 3) {
   str = "周二";
  } else if (x == 2) {
   str = "周一";
  }
  return str;
 }

 // 根据当前一个星期中的第几天得到它的日期
 public static Date getDateOfCurrentWeek(int day) {
  Calendar aCalendar = Calendar.getInstance();
  int x = aCalendar.get(Calendar.DAY_OF_WEEK);
  aCalendar.add(Calendar.DAY_OF_WEEK, day - (x - 1));
  return aCalendar.getTime();
 }

 // 某一天在一个月中的第几周
 public static int getWeekOfMonth(Date date) {
  Calendar calendar = Calendar.getInstance();
  calendar.setTime(date);
  return calendar.get(Calendar.WEEK_OF_MONTH);
 }

 public static Date addSomeDay(Date oldDate, int num) {
  Calendar calendar = Calendar.getInstance();
  calendar.setTime(oldDate);
  calendar.add(Calendar.DATE, num);
  return calendar.getTime();
 }

 // 把日期“2006-09-01”转化成20060901
 public static String Dateformat(String date) {
  int i = date.length();
  StringBuffer newdate = new StringBuffer(date.substring(0, 4));
  if (i == 8) {

   newdate.append(0);
   newdate.append(date.substring(5, 6));
   newdate.append(0);
   newdate.append(date.substring(7, 8));
  } else if (i == 9) {
   if (date.substring(7, 8).equalsIgnoreCase("-")) {

    newdate.append(date.substring(5, 7));
    newdate.append(0);
    newdate.append(date.substring(8, 9));
   } else {
    newdate.append(0);
    newdate.append(date.substring(5, 6));
    newdate.append(date.substring(7, 9));
   }

  } else {

   newdate.append(date.substring(5, 7));
   newdate.append(date.substring(8, 10));
  }

  return newdate.toString();

 }

 /* 新增static方法 */
 /* 格式话日期为yyyy-MM-dd形式 */
 public static String formatDate(Date myDate) {
  return FAST_DAY_FORMATTER.format(myDate);
 }

 /* 格式话日期为yyyy-MM-dd HH:mm形式 */
 public static String formatDateMinutes(Date myDate) {
  return FAST_MINUTE_FORMATTER.format(myDate);
 }

 /* 格式话日期为yyyy-MM-dd HH:mm:ss形式 */
 public static String formatDateTime(Date myDate) {
  return FAST_SECOND_FORMATETR.format(myDate);
 }

 /* 格式话日期为yyyy-MM-dd HH:mm:ss形式 */
 public static String formatDateMinutesTime(Date myDate) {
  return FAST_ONLY_MINUTE_FORMATETR.format(myDate);
 }

 /* 将字符串转换成日期 */
 public static Date getDateByString(String rq) {

  DateFormat df = new SimpleDateFormat();
  Date d = null;
  try {
   d = df.parse(rq);
  } catch (Exception e) {
  }
  return d;
 }

 public static Date getDateByString(String str, String pattern) {
  SimpleDateFormat sdf = null;
  try {
   sdf = new SimpleDateFormat(pattern);
   return sdf.parse(str);
  } catch (Exception e) {
  }
  return null;
 }

 /**
  * 比较时间是否相同
  *
  * @param start
  * @param end
  * @return
  */
 public static boolean equals(Date start, Date end) {
  if (start != null && end != null && start.getTime() == end.getTime()) {
   return true;
  }
  return false;
 }

 public static final Date convertStringToDate(String aMask, String strDate) {
  SimpleDateFormat df = null;
  Date date = null;
  df = new SimpleDateFormat(aMask);

  try {
   date = df.parse(strDate);
  } catch (Exception pe) {
  }
  return (date);
 }

 // add by csg
 // 当前月份第一天
 public static Date getCurrentMonthFirstDay() {
  Calendar calendar = Calendar.getInstance();
  Date date = calendar.getTime();
  calendar.setTime(date);
  calendar.set(Calendar.DAY_OF_MONTH, 1);
  return calendar.getTime();
 }

 // 得到当前系统日期.add by lnb 12.12

 public static String getCurrentTime() {
  Date myDate = new Date(System.currentTimeMillis());
  return formatDateTime(myDate);
 }

 public static boolean isSameDay(Date c1, Date c2) {
  return formatDate(c1).equals(formatDate(c2));
 }

 public static Calendar string2Cal(String arg) {
  SimpleDateFormat sdf = null;
  String trimString = arg.trim();
  if (trimString.length() > 14)
   sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  else
   sdf = new SimpleDateFormat("yyyy-MM-dd");
  Date d = null;
  try {
   d = sdf.parse(trimString);
  } catch (ParseException e) {
   return null;
  }
  Calendar cal = Calendar.getInstance();
  cal.setTime(d);
  return cal;
 }

 /**
  * 匹配是否在某个时间段中
  *
  * @param timePeriod
  *            "00:00-06:00"格式
  * @param time
  *            "07:30"
  * @return
  */
 public static boolean isInPeriod(String timePeriod, String time) {
  String startTime = timePeriod.substring(0, 5);

  String endTime = timePeriod.substring(6);

  String timeTime = time;

  // 和时间段的开始或者结束刚好相等的时候
  if (startTime.equalsIgnoreCase(timeTime)
    || endTime.equalsIgnoreCase(timeTime)) {
   return true;
  }

  SimpleDateFormat d = new SimpleDateFormat("HH:mm");

  try {
   Date startDate = d.parse(startTime);

   Date endDate = d.parse(endTime);

   Date timeDate = d.parse(timeTime);

   if (timeDate.after(startDate) && timeDate.before(endDate)) {
    return true;
   }
  } catch (ParseException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }

  return false;
 }

 public static boolean isBetween(Date date, Date from, Date to) {
  Assert.notNull(date, "date cannot be null.");
  Assert.notNull(from, "from cannot be null.");
  Assert.notNull(to, "to cannot be null.");
  Assert.isTrue(!from.after(to), "from cannot be after to.");
  return !date.before(from) && !date.after(to);
 }

 public static Date ifNull(Date date, Date defaultDate) {
  return date != null ? date : defaultDate;
 }

 public static String format(Date date, DateFormat df) {
  if (date == null) {
   return "";
  } else if (df != null) {
   return df.format(date).toLowerCase();
  } else {
   return FAST_DAY_FORMATTER.format(date);
  }
 }

 public static String format(Date date) {
  return format(date, null);
 }

 public static Date parseUseDefaultFormat(String date) {
  return parse(date, getDayFormatter());
 }

 public static Date parse(String date, DateFormat df) {
  try {
   return df.parse(date);
  } catch (ParseException e) {
   throw new RuntimeException("parse date [" + date
     + "] failed in use [" + getDayFormatter() + "]", e);
  }
 }

 // 增加或减少几个月
 public static Date addMonth(Date date, int num) {
  Calendar startDT = Calendar.getInstance();
  startDT.setTime(date);
  startDT.add(Calendar.MONTH, num);
  return startDT.getTime();
 }

 // 增加或减少天数
 public static Date addDay(Date date, int num) {
  Calendar startDT = Calendar.getInstance();
  startDT.setTime(date);
  startDT.add(Calendar.DAY_OF_MONTH, num);
  return startDT.getTime();
 }

 public static List<Date> splitDays(Date start, Date end) {
  return splitDays(start, end, null);
 }

 /**
  *
  * @param start
  * @param end
  * @param dayOfWeeks
  *            周日(1), 周一(2), ..., 周六(7)
  * @return
  */
 @SuppressWarnings("deprecation")
 public static List<Date> splitDays(Date start, Date end, int[] dayOfWeeks) {
  List<Date> dates = new ArrayList<Date>();
  for (Date date = start; !date.after(end); date = addDay(date, 1)) {
   if (ArrayUtils.isEmpty(dayOfWeeks)
     || ArrayUtils.contains(dayOfWeeks, date.getDay() + 1)) {
    dates.add(date);
   }
  }
  return dates;
 }

 /**
  * 取得时间距阵
  *
  * @param dayStart
  * @param dayEnd
  * @return
  */
 public static List<String> getDayPeriodFullMatrix(String dayStart,
   String dayEnd) {

  List<String> retList = new ArrayList<String>();
  Calendar calStart = new GregorianCalendar();
  Calendar calEnd = new GregorianCalendar();
  String str = null;
  try {
   calStart.setTime(getDayFormatter().parse(dayStart));
   calEnd.setTime(getDayFormatter().parse(dayEnd));
   calEnd.add(Calendar.DATE, 1); // 包含最后一天

   // 前端补足
   int dayOfWeek = calStart.get(Calendar.DAY_OF_WEEK);
   for (; dayOfWeek > 1; dayOfWeek--) {
    retList.add(MATRIX_NULL_FLAG);
   }

   // 中间部分
   for (; calStart.before(calEnd); calStart.add(Calendar.DATE, 1)) {
    str = FAST_DAY_FORMATTER.format(calStart.getTime());
    retList.add(str);
   }

   // 后端补足
   dayOfWeek = calEnd.get(Calendar.DAY_OF_WEEK);
   if (dayOfWeek != 1) {
    for (; dayOfWeek != 1 && dayOfWeek <= 7; dayOfWeek++) {
     retList.add(MATRIX_NULL_FLAG);
    }
   }
   if(retList.size()<42) {
    int length=42-retList.size();
    for(int i=0;i<length;i++) {
     retList.add(MATRIX_NULL_FLAG);
     System.out.println(i);
    }
   }
  } catch (ParseException e) {
   throw new RuntimeException(e);
  }

  return retList;
 }

 /**
  * 取得时间距阵
  *
  * @param dayStart
  * @param dayEnd
  * @return
  */
 public static List<String> getDayPeriodFullMatrix(Date dayStart, Date dayEnd) {
  return getDayPeriodFullMatrix(format(dayStart), format(dayEnd));
 }

 /**
  * <li>SimpleDateFormat is not thread saft, so when you need, you should
  * create it</li>
  */
 public static SimpleDateFormat getDayFormatter() {
  return new SimpleDateFormat("yyyy-MM-dd");
 }

 public static SimpleDateFormat getMinuteFormatter() {
  return new SimpleDateFormat("yyyy-MM-dd HH:mm");
 }

 public static SimpleDateFormat getMonthFormatter() {
  return new SimpleDateFormat("yyyy-MM");
 }

 public static SimpleDateFormat getSecondFormatter() {
  return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
 }

 public static void main(String[] args) {
  List<String> matrix = getDayPeriodFullMatrix("2010-02-01", "2010-02-28");
  System.out.println(matrix);
  System.out.println(matrix.size());
  Date time1 = parse("2009-09-26 09:00:23", getSecondFormatter());
  Date time2 = parse("2009-09-27 09:00:24", getSecondFormatter());
  System.out.println(getQuoteIgnoreTime(time1, time2));
 }

 /**
  * 字符串格式时间转换到对象时间
  *
  * @param str
  * @return
  */
 public static Date string2DateTime(String str) {
  SimpleDateFormat fo = new SimpleDateFormat("yyyy-MM-dd");
  Date date = new Date();
  try {
   date = fo.parse(str);
  } catch (ParseException e) {
   e.printStackTrace();
  }
  return date;
 }

 /**
  * 返回date时间 只到天 2008-05-20 00:00
  *
  * @param date
  * @return
  */
 public static Date getNoHHMMDate(Date date) {
  return org.apache.commons.lang.time.DateUtils.truncate(date,
    Calendar.DATE);
 }

 /**
  * 增加天
  *
  * @param date
  * @param i
  * @return
  */
 public static Date addDays(Date date, int i) {
  return org.apache.commons.lang.time.DateUtils.addDays(date, i);
 }

 public static long diff(Date d1, Date d2, String field) {
  long d1t = d1.getTime();
  long d2t = d2.getTime();
  if ("middleNight".equalsIgnoreCase(field)) { // 计算间夜,先除后减
   return d1t / MILSEC_PER_DAY - d2t / MILSEC_PER_DAY;
  } else {
   return d2t - d1t;
  }
 }

 public static String getLikeTimePointCode(Date myDate) {
  String myTime = formatDateMinutesTime(myDate);
  String[] myTimeList = myTime.split(":");
  return myTimeList[0] + myTimeList[1] + "00";
 }

 /**
  * 筛选日期(400系统)
  *
  * @param start
  * @param end
  * @param dayOfWeeks
  * @return
  */
 public static List<Date> getDates(Date start, Date end, Integer[] dayOfWeeks) {
  List<Date> list = new ArrayList<Date>();
  Date date = start;
  for (int i = 1; i <= 7; i++) {
   if (ArrayUtils.contains(dayOfWeeks, dayOfWeek(date))) {
    while (date.compareTo(end) <= 0) {
     list.add(date);
     date = addDays(date, 7);
    }
    date = addDays(start, i);
   } else {
    date = addDays(date, 1);
   }
  }
  return list;
 }

 /**
  * 比较日期
  */
 public static boolean constractDate(Date d1, Date d2) {
  if (d1 == null || d2 == null)
   return false;
  Date date1 = string2DateTime(formatDate(d1));
  Date date2 = string2DateTime(formatDate(d2));
  if (date1.equals(date2))
   return true;
  return date1.before(date2);
 }

 /**
  * 星期几
  *
  * @param date
  * @return
  */
 public static int getWeekByDate(Date date) {
  Calendar cal = Calendar.getInstance();
  cal.setTime(date);
  return cal.get(Calendar.DAY_OF_WEEK);
 }

 /**
  * 比较两日期是否相等
  */
 public static boolean equalDate(Date d1, Date d2) {
  if (d1 == null || d2 == null)
   return false;
  Date date1 = string2DateTime(formatDate(d1));
  Date date2 = string2DateTime(formatDate(d2));
  return date1.equals(date2);
 }

 /**
  * 将某个日期转换成业务逻辑上面的星期几 calendar: 周一:2;周二:3;周三:4;周四:5;周五:6;周六:7;周日:1 业务逻辑 :
  * 周一:1;周二:2;周三:3;周四:4;周五:5;周六:6;周日:7
  *
  * @param day
  * @return
  */
 public static String explainDayOfWeek(Date date) {
  int departDay = dayOfWeek(date);
  if (departDay == 1) {
   return "7";
  } else if (departDay == 2) {
   return "1";
  } else {
   return String.valueOf(departDay - 1);
  }
 }
 
 /**
  * 比较 是否当前日子以前的日子(不包含当前天)
  */
 public static boolean gtAfter(Date date){
  return date.before(addDay(new Date(),-1));
 }
}

分享到:
评论

相关推荐

    Scratch图形化编程语言入门与进阶指南

    内容概要:本文全面介绍了Scratch编程语言,包括其历史、发展、特点、主要组件以及如何进行基本和进阶编程操作。通过具体示例,展示了如何利用代码块制作动画、游戏和音乐艺术作品,并介绍了物理模拟、网络编程和扩展库等功能。 适合人群:编程初学者、教育工作者、青少年学生及对编程感兴趣的各年龄段用户。 使用场景及目标:①帮助初学者理解编程的基本概念和逻辑;②提高学生的创造力、逻辑思维能力和问题解决能力;③引导用户通过实践掌握Scratch的基本和高级功能,制作个性化作品。 其他说明:除了基础教学,文章还提供了丰富的学习资源和社区支持,帮助用户进一步提升技能。

    mmexport1734874094130.jpg

    mmexport1734874094130.jpg

    基于simulink的悬架仿真模型,有主动悬架被动悬架天棚控制半主动悬架 1基于pid控制的四自由度主被动悬架仿真模型 2基于模糊控制的二自由度仿真模型,对比pid控制对比被动控制,的比较说明

    基于simulink的悬架仿真模型,有主动悬架被动悬架天棚控制半主动悬架 [1]基于pid控制的四自由度主被动悬架仿真模型 [2]基于模糊控制的二自由度仿真模型,对比pid控制对比被动控制,的比较说明 [3]基于天棚控制的二自由度悬架仿真 以上模型,说明文档齐全,仿真效果明显

    【组合数学答案】组合数学-苏大李凡长版-课后习题答案

    内容概要:本文档是《组合数学答案-网络流传版.pdf》的内容,主要包含了排列组合的基础知识以及一些经典的组合数学题目。这些题目涵盖了从排列数计算、二项式定理的应用到容斥原理的实际应用等方面。通过对这些题目的解析,帮助读者加深对组合数学概念和技巧的理解。 适用人群:适合初学者和有一定基础的学习者。 使用场景及目标:可以在学习组合数学课程时作为练习题参考,也可以在复习考试或准备竞赛时使用,目的是提高解决组合数学问题的能力。 其他说明:文档中的题目覆盖了组合数学的基本知识点,适合逐步深入学习。每个题目都有详细的解答步骤,有助于读者掌握解题思路和方法。

    YOLO算法-雨水排放涵洞模型数据集-1000张图像带标签-.zip

    YOLO系列算法目标检测数据集,包含标签,可以直接训练模型和验证测试,数据集已经划分好,包含数据集配置文件data.yaml,适用yolov5,yolov8,yolov9,yolov7,yolov10,yolo11算法; 包含两种标签格:yolo格式(txt文件)和voc格式(xml文件),分别保存在两个文件夹中,文件名末尾是部分类别名称; yolo格式:<class> <x_center> <y_center> <width> <height>, 其中: <class> 是目标的类别索引(从0开始)。 <x_center> 和 <y_center> 是目标框中心点的x和y坐标,这些坐标是相对于图像宽度和高度的比例值,范围在0到1之间。 <width> 和 <height> 是目标框的宽度和高度,也是相对于图像宽度和高度的比例值; 【注】可以下拉页面,在资源详情处查看标签具体内容;

    操作系统实验 Ucore lab5

    操作系统实验 Ucore lab5

    学生成绩管理系统软件界面

    基于matlab开发的学生成绩管理系统GUI界面,可以实现学生成绩载入,显示,处理及查询。

    NVR-K51-BL-CN-V4.50.010-210322

    老版本4.0固件,(.dav固件包),支持7700N-K4,7900N-K4等K51平台,升级后出现异常或变砖可使用此版本。请核对自己的机器信息,确认适用后在下载。

    YOLO算法-塑料数据集-7张图像带标签-塑料.zip

    YOLO系列算法目标检测数据集,包含标签,可以直接训练模型和验证测试,数据集已经划分好,包含数据集配置文件data.yaml,适用yolov5,yolov8,yolov9,yolov7,yolov10,yolo11算法; 包含两种标签格:yolo格式(txt文件)和voc格式(xml文件),分别保存在两个文件夹中,文件名末尾是部分类别名称; yolo格式:<class> <x_center> <y_center> <width> <height>, 其中: <class> 是目标的类别索引(从0开始)。 <x_center> 和 <y_center> 是目标框中心点的x和y坐标,这些坐标是相对于图像宽度和高度的比例值,范围在0到1之间。 <width> 和 <height> 是目标框的宽度和高度,也是相对于图像宽度和高度的比例值; 【注】可以下拉页面,在资源详情处查看标签具体内容;

    YOLO算法-杂草检测项目数据集-3970张图像带标签-杂草.zip

    YOLO算法-杂草检测项目数据集-3970张图像带标签-杂草.zip

    E008 库洛米(3页).zip

    E008 库洛米(3页).zip

    基于西门子 PLC 的晶圆研磨机自动控制系统设计与实现-论文

    内容概要:本文详细阐述了基于西门子PLC的晶圆研磨机自动控制系统的设计与实现。该系统结合了传感器技术、电机驱动技术和人机界面技术,实现了晶圆研磨过程的高精度和高效率控制。文中详细介绍了控制系统的硬件选型与设计、软件编程与功能实现,通过实验测试和实际应用案例验证了系统的稳定性和可靠性。 适合人群:具备一定的自动化控制和机械设计基础的工程师、研究人员以及从事半导体制造的技术人员。 使用场景及目标:本研究为半导体制造企业提供了一种有效的自动化解决方案,旨在提高晶圆研磨的质量和生产效率,降低劳动强度和生产成本。系统适用于不同规格晶圆的研磨作业,可以实现高精度、高效率、自动化的晶圆研磨过程。 阅读建议:阅读本文时,重点关注晶圆研磨工艺流程和技术要求,控制系统的硬件和软件设计方法,以及实验测试和结果分析。这将有助于读者理解和掌握该自动控制系统的实现原理和应用价值。

    YOLO算法-禾本科杂草数据集-4760张图像带标签.zip

    YOLO系列算法目标检测数据集,包含标签,可以直接训练模型和验证测试,数据集已经划分好,包含数据集配置文件data.yaml,适用yolov5,yolov8,yolov9,yolov7,yolov10,yolo11算法; 包含两种标签格:yolo格式(txt文件)和voc格式(xml文件),分别保存在两个文件夹中,文件名末尾是部分类别名称; yolo格式:<class> <x_center> <y_center> <width> <height>, 其中: <class> 是目标的类别索引(从0开始)。 <x_center> 和 <y_center> 是目标框中心点的x和y坐标,这些坐标是相对于图像宽度和高度的比例值,范围在0到1之间。 <width> 和 <height> 是目标框的宽度和高度,也是相对于图像宽度和高度的比例值; 【注】可以下拉页面,在资源详情处查看标签具体内容;

    深圳建筑安装公司“挖掘机安全操作规程”.docx

    深圳建筑安装公司“挖掘机安全操作规程”

    YOLO算法-汽车数据集-120张图像带标签-汽车.zip

    YOLO系列算法目标检测数据集,包含标签,可以直接训练模型和验证测试,数据集已经划分好,包含数据集配置文件data.yaml,适用yolov5,yolov8,yolov9,yolov7,yolov10,yolo11算法; 包含两种标签格:yolo格式(txt文件)和voc格式(xml文件),分别保存在两个文件夹中,文件名末尾是部分类别名称; yolo格式:<class> <x_center> <y_center> <width> <height>, 其中: <class> 是目标的类别索引(从0开始)。 <x_center> 和 <y_center> 是目标框中心点的x和y坐标,这些坐标是相对于图像宽度和高度的比例值,范围在0到1之间。 <width> 和 <height> 是目标框的宽度和高度,也是相对于图像宽度和高度的比例值; 【注】可以下拉页面,在资源详情处查看标签具体内容;

    大题解题方法等4个文件.zip

    大题解题方法等4个文件.zip

    保障性安居工程考评内容和评价标准.docx

    保障性安居工程考评内容和评价标准.docx

    监督机构检查记录表.docx

    监督机构检查记录表.docx

    (177588850)基于java+mysql+swing的学生选课成绩信息系统

    该项目适合初学者进行学习,有效的掌握java、swing、mysql等技术的基础知识。资源包含源码、视频和文档 资源下载|如果你正在做毕业设计,需要源码和论文,各类课题都可以,私聊我。 商务合作|如果你是在校大学生,正好你又懂语言编程,或者你可以找来需要做毕设的伙伴,私聊我。。内容来源于网络分享,如有侵权请联系我删除。另外如果没有积分的同学需要下载,请私信我。

    218) Leverage - 创意机构与作品集 WordPress 主题 2.2.7.zip

    218) Leverage - 创意机构与作品集 WordPress 主题 2.2.7.zip

Global site tag (gtag.js) - Google Analytics