| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205 |
- package com.xjrsoft.xjrsoftboot;
- import cn.hutool.core.util.StrUtil;
- import cn.hutool.db.Db;
- import com.xjrsoft.common.constant.GlobalConstant;
- import com.xjrsoft.common.exception.MyException;
- import com.xjrsoft.common.utils.DatasourceUtil;
- import lombok.Data;
- import org.junit.jupiter.api.Test;
- import javax.sql.DataSource;
- import java.sql.SQLException;
- import java.text.ParseException;
- import java.text.SimpleDateFormat;
- import java.time.DayOfWeek;
- import java.time.Instant;
- import java.time.LocalDateTime;
- import java.time.format.TextStyle;
- import java.time.temporal.ChronoUnit;
- import java.util.*;
- import static java.util.Calendar.DAY_OF_MONTH;
- public class StrTest {
- @Test
- public void formatTest() {
- String f = "《{}》等待{}审批。";
- System.out.println(StrUtil.format(f, "sdfsdf", "bbbbbb"));
- }
- @Test
- public void list2StrTest() {
- List<String> list = new ArrayList();
- String joined = String.join(",", list);
- }
- @Test
- public void arrayTest() {
- String f = "《{}》等待{}审批。";
- System.out.println(StrUtil.format(f, "sdfsdf", "bbbbbb"));
- }
- @Test
- public void date() throws ParseException {
- SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
- Date date = sdf.parse("2023-11-22 15:58:40");
- SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd");
- String leaveStartDayStr = sdf1.format(date);//"yyyy-MM-dd"
- String forenoonStartStr = leaveStartDayStr + " 00:00:00";//上午区间开始时间
- String forenoonEndStr = leaveStartDayStr + " 12:00:00";//上午区间结束时间
- String afternoonStartStr = leaveStartDayStr + " 12:00:00";//下午区间开始时间
- String afternoonEndStr = leaveStartDayStr + " 23:59:59";//下午区间结束时间
- //获取请假开始时间后一天的上午,下午区间
- Instant instant = date.toInstant();
- Calendar calendar = Calendar.getInstance();
- calendar.setTimeZone(TimeZone.getTimeZone("UTC"));
- calendar.setTimeInMillis(instant.toEpochMilli());
- int dayOfWeek = calendar.get(Calendar.DAY_OF_WEEK) - 1;//获取请假开始的星期(从星期日开始算,所以需要减1)
- calendar.add(DAY_OF_MONTH, 1);
- Date leaveStartDayTomorrow = calendar.getTime();
- String leaveTomorrowDayStr = sdf1.format(leaveStartDayTomorrow);//"yyyy-MM-dd"
- String forenoonStartTomorrowStr = leaveTomorrowDayStr + " 00:00:00";//上午区间开始时间
- String forenoonEndTomorrowStr = leaveTomorrowDayStr + " 12:00:00";//上午区间结束时间
- String afternoonStartTomorrowStr = leaveTomorrowDayStr + " 12:00:00";//下午区间开始时间
- String afternoonEndTomorrowStr = leaveTomorrowDayStr + " 23:59:59";//下午区间结束时间
- Date forenoonStartDate;
- Date forenoonEndDate;
- Date afternoonStartDate;
- Date afternoonEndDate;
- Date forenoonStartTomorrowDate;
- Date forenoonEndTomorrowDate;
- Date afternoonStartTomorrowDate;
- Date afternoonEndTomorrowDate;
- try {
- forenoonStartDate = sdf.parse(forenoonStartStr);
- forenoonEndDate = sdf.parse(forenoonEndStr);
- afternoonStartDate = sdf.parse(afternoonStartStr);
- afternoonEndDate = sdf.parse(afternoonEndStr);
- forenoonStartTomorrowDate = sdf.parse(forenoonStartTomorrowStr);
- forenoonEndTomorrowDate = sdf.parse(forenoonEndTomorrowStr);
- afternoonStartTomorrowDate = sdf.parse(afternoonStartTomorrowStr);
- afternoonEndTomorrowDate = sdf.parse(afternoonEndTomorrowStr);
- } catch (ParseException e) {
- throw new MyException("出现未知错误,请联系管理员");
- }
- System.out.println(afternoonStartTomorrowDate.compareTo(afternoonEndTomorrowDate));
- }
- @Test
- public void date01() throws ParseException {
- // SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
- // Date date = sdf.parse("2023-11-23 15:58:40");
- // Date date01 = sdf.parse("2023-11-25 12:58:40");
- // List<DateRange> list = splitDateRangeByDay(LocalDateTime.ofInstant(date.toInstant(), ZoneId.systemDefault()),LocalDateTime.ofInstant(date01.toInstant(), ZoneId.systemDefault()));
- // // 添加元素到列表中
- // list.stream().forEach(element -> {
- // // 对元素进行操作
- // System.out.println(element.getBegin());
- // System.out.println(element.getEnd());
- // });
- LocalDateTime dateTime = LocalDateTime.now();
- DayOfWeek dayOfWeek = dateTime.getDayOfWeek();
- System.out.println(dayOfWeek); // 输出星期几的英文表示,例如:MONDAY, TUESDAY, 等等
- int dayOfWeekValue = dayOfWeek.getValue();
- System.out.println(dayOfWeekValue); // 输出星期几的数字表示,1 表示星期一,2 表示星期二,等等
- String dayOfWeekChinese = dayOfWeek.getDisplayName(TextStyle.FULL, Locale.CHINESE);
- System.out.println(dayOfWeekChinese); // 输出星期几的中文表示,例如:星期一,星期二,等等
- }
- @Data
- public class DateRange {
- /**
- * 开始时间
- */
- private LocalDateTime begin;
- /**
- * 结束时间
- */
- private LocalDateTime end;
- /**
- * 当前时间的第几轮(段)
- */
- private Long turnNum;
- }
- /**
- * 按日分割
- *
- * @param startTime 开始时间
- * @param endTime 结束时间
- * @return 分割后的时间段集合
- */
- private List<DateRange> splitDateRangeByDay(LocalDateTime startTime, LocalDateTime endTime) {
- long seconds = startTime.until(endTime, ChronoUnit.SECONDS);
- if (seconds < 0) {
- return new ArrayList<>();
- }
- //轮数
- long turnNum = 0;
- //分割的时间段集合,使用累加算法
- List<DateRange> dateList = new ArrayList<>();
- DateRange range = new DateRange();
- range.setBegin(startTime);
- while (true) {
- turnNum++;
- startTime = startTime.plusDays(1);
- //大于截止日期时,不再累加
- if (startTime.isAfter(endTime)) {
- range.setEnd(endTime);
- range.setTurnNum(turnNum);
- dateList.add(range);
- break;
- }
- //将时间调整为该天的 0时 0分 0秒
- startTime = LocalDateTime.of(startTime.getYear(), startTime.getMonth(), startTime.getDayOfMonth(), 0, 0, 0);
- LocalDateTime tmpBegin = startTime;
- //计算出上一天的最后一秒
- LocalDateTime endDate = tmpBegin.minusSeconds(1);
- range.setEnd(endDate);
- range.setTurnNum(turnNum);
- dateList.add(range);
- //创建新的时间段
- range = new DateRange();
- range.setBegin(tmpBegin);
- }
- return dateList;
- }
- @Test
- void test22() {
- String name = "2023年秋季";
- System.out.println(name.contains("秋季"));
- }
- @Test
- public void StringTest() {
- String str = "电子“1+x”集成电路检测技术应用(初级)考试";
- str = str.replace("“", "").replace("”", "").replace("\"", "").replace("\n", "").replace("\r", "").replace("\t", "");
- System.out.println(str);
- }
- @Test
- public void sortCodeTest() throws SQLException {
- DataSource datasource = DatasourceUtil.getDataSource(GlobalConstant.DEFAULT_DATASOURCE_KEY);
- Db use = Db.use(datasource);
- String sql = "SELECT max(sort_code) FROM evaluate_template";
- int sortCodeMax = use.queryNumber(sql, Integer.class).intValue();
- System.err.println(sortCodeMax);
- }
- }
|