import java.sql.Timestamp;

import java.text.ParseException;

import java.text.SimpleDateFormat;

import java.util.Calendar;

import java.util.Date;

import java.util.GregorianCalendar;

import java.util.HashMap;

import java.util.Map;

import org.apache.commons.lang.time.DateUtils;

import org.apache.commons.logging.Log;

import org.apache.commons.logging.LogFactory;

import com.hurong.core.Constants;

public class DateUtil {

private static final Log logger = LogFactory.getLog(DateUtil.class);

/**

* 设置当前时间为当天的最初时间(即00时00分00秒)

*

* @param cal

* @return

*/

public static Calendar setStartDay(Calendar cal) {

cal.set(Calendar.HOUR_OF_DAY, 0);

cal.set(Calendar.MINUTE, 0);

cal.set(Calendar.SECOND, 0);

return cal;

}

public static Calendar setEndDay(Calendar cal) {

cal.set(Calendar.HOUR_OF_DAY, 23);

cal.set(Calendar.MINUTE, 59);

cal.set(Calendar.SECOND, 59);

return cal;

}

/**

* 把源日历的年月日设置到目标日历对象中

* @param destCal

* @param sourceCal

*/

public static void copyYearMonthDay(Calendar destCal,Calendar sourceCal){

destCal.set(Calendar.YEAR, sourceCal.get(Calendar.YEAR));

destCal.set(Calendar.MONTH, sourceCal.get(Calendar.MONTH));

destCal.set(Calendar.DAY_OF_MONTH, sourceCal.get(Calendar.DAY_OF_MONTH));

}

/**

* 格式化日期为

*

* @return

*/

public static String formatEnDate(Date date) {

SimpleDateFormat sdf = new SimpleDateFormat("MM/dd/yyyy hh:mm:ss a");

return sdf.format(date).replaceAll("上午", "AM").replaceAll("下午", "PM");

}

public static Date parseDate(String dateString) {

Date date = null;

try {

date = DateUtils.parseDate(dateString, new String[]{Constants.DATE_FORMAT_FULL,Constants.DATE_FORMAT_YMD});

} catch (Exception ex) {

logger.error("Pase the Date(" + dateString + ") occur errors:"

+ ex.getMessage());

}

return date;

}

public static String getDateAndTime() {

Calendar calendar = Calendar.getInstance();

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

return sdf.format(calendar.getTime());

}

public static String getYearAndMonth(){

Calendar calendar=Calendar.getInstance();

SimpleDateFormat simpleDateFormat=new SimpleDateFormat("yyyyMM");

return simpleDateFormat.format(calendar.getTime());

}

public final static Timestamp stringToTS(String time) {

SimpleDateFormat sf =  new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

Timestamp ts = null;

try {

ts = new Timestamp(sf.parse(time).getTime());

} catch (ParseException e) {

e.printStackTrace();

}

return ts ;

}

public final static Timestamp stringToTsDate(String time){

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

Timestamp ts = null;

try {

ts = new Timestamp(sf.parse(time).getTime());

} catch (ParseException e) {

e.printStackTrace();

}

return ts ;

}

/**

* @function 得到现在的时间     yyyy-MM-dd HH:mm:ss

*

* @auther     jiangwanyu

*

* @return String

*/

public final static String getNowDateTime(){

Date nowDate = new Date();

SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

return sf.format(nowDate);

}

/**

* @function 自定义 日期格式

* @param dateFormat

* @return

*/

public final static String getNowDateTime(String dateFormat){

Date nowDate = new Date();

SimpleDateFormat sf = null;

try {

sf = new SimpleDateFormat(dateFormat);

} catch (Exception e) {

e.printStackTrace();

return "";

}

return sf.format(nowDate);

}

/**

* @funciton 得到 Timestamp 类型的nowDateTime

*

* @author credit004

*

* @return      Timestamp

*/

public final static Timestamp getNowDateTimeTs(){

return stringToTS(getNowDateTime());

}

public final static Timestamp getNowDayTimeTs(){

return stringToTsDate(getNowDateTime());

}

/**

* @funciton 节点任务期限---XXXX年XX月XX日 星期X

* @param dayLimit

* @return

*/

public final static String getTaskTimeLimit(int dayLimit){

Date nowDate = new Date();

int mod = dayLimit % 5;

int other = dayLimit / 5 * 7;

SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

Calendar calendar = Calendar.getInstance();

calendar.setTime(nowDate);

/*

* 判断双休日  jiang

*/

for (int i = 0; i < mod;) {

calendar.add(Calendar.DATE, 1);

switch (calendar.get(Calendar.DAY_OF_WEEK)) {

case Calendar.SUNDAY:

case Calendar.SATURDAY:

break;

default:

i++;

break;

}

}

if (other > 0){

calendar.add(Calendar.DATE, other);

}

//          calendar.set(Calendar.DAY_OF_YEAR,calendar.get(Calendar.DAY_OF_YEAR) + dayLimit);

return sf.format(calendar.getTime());

}

/**

* @funciton 节点任务期限---XXXX年XX月XX日 星期X  ---放假天数【非双休人为放假   比如 春节 比如 十一】

* @param dayLimit

* @return

*/

public final static String getTaskTimeLimit(int dayLimit, int holidays){

Date nowDate = new Date();

dayLimit = dayLimit+holidays;

SimpleDateFormat sf = new SimpleDateFormat("yyyy年MM月dd日 E");

Calendar calendar = Calendar.getInstance();

calendar.setTime(nowDate);

calendar.set(Calendar.DAY_OF_YEAR,calendar.get(Calendar.DAY_OF_YEAR) + dayLimit);

return sf.format(calendar.getTime());

}

/**

* @funciton 得到 (time)时间 后的第(months)个月

*/

public final static Timestamp getNextTerm(Timestamp time, int months){

Calendar calendar = Calendar.getInstance();

calendar.setTime(time);

calendar.add(Calendar.MONTH, months);

Timestamp timestamp = new Timestamp(calendar.getTime().getTime());

return timestamp;

}

/**两个日期的 日期差  参数s1:被减数  参数s2 :减数*/

public final static int getSurplusDays(Timestamp s1, Timestamp s2){

Calendar c1 = Calendar.getInstance();

c1.setTime(s1);

Calendar c2 = Calendar.getInstance();

c2.setTime(s2);

long diff = (c1.getTimeInMillis()-c2.getTimeInMillis())/(1000*60*60*24);

return ((Long)diff).intValue();

}

//      DateFormat   format=new   SimpleDateFormat("yyyy-MM-dd");

//      Calendar   calendar=Calendar.getInstance();

//      calendar.setTime(mdefSetting.getDate());

//      calendar.add(Calendar.DAY_OF_MONTH,1);

//      mdefs.setName(format.format(calendar.getTime())+" 至 "+mdefSetting2.getDate());

/**

* 在日期上加days天,得到新的日期

* @return

*/

public final static Date addDaysToDate(Date date,int days){

Calendar c = Calendar.getInstance();

c.setTime(date);

c.add(Calendar.DATE,days);

return c.getTime();

}

/**

* @function 得到自定义 日期格式

* @param dateFormat

* @return

*/

public final static String getFormatDateTime(Date date,String dateFormat){

SimpleDateFormat sf = null;

try {

sf = new SimpleDateFormat(dateFormat);

} catch (Exception e) {

e.printStackTrace();

return "";

}

return sf.format(date);

}

/**

* 在日期上加months月,得到新的日期

* @return

*/

public final static Date addMonthsToDate(Date date,int months){

Calendar c = Calendar.getInstance();

c.setTime(date);

c.add(Calendar.MONTH,months);

return c.getTime();

}

/**

* 在日期上加months月和日,得到新的日期

* @return

*/

public final static Date addMonthsToDate(Date date,int months,int days){

Calendar c = Calendar.getInstance();

c.setTime(date);

c.add(Calendar.MONTH,months);

c.add(Calendar.DATE,days);

//      c.roll(Calendar.DATE, days);

return c.getTime();

}

/**

* 计算两日期之间相隔月份和天数

* @return

*/

public static Map<Integer, Integer> getMonthAndDaysBetweenDate(String date1,String date2){

Map<Integer, Integer>  map=new HashMap();

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

Date d1 = null;

try {

d1 = sd.parse(date1);

} catch (ParseException e) {

e.printStackTrace();

}

Date d2=null;

try {

d2 = sd.parse(date2);

} catch (ParseException e) {

e.printStackTrace();

}

int months=0;//相差月份

int days=0;

int y1=d1.getYear();

int y2=d2.getYear();

int dm1=d2.getMonth();//起始日期月份

int dm2=d2.getMonth();//结束日期月份

int dd1=d1.getDate(); //起始日期天

int dd2=d2.getDate(); //结束日期天

if(d1.getTime()<d2.getTime()){

months=d2.getMonth()-d1.getMonth()+(y2-y1)*12;

if(dd2<dd1){

months=months-1;

}

System.out.println(getFormatDateTime(addMonthsToDate(DateUtil.parseDate(date1, "yyyy-MM-dd"),months),"yyyy-MM-dd"));

days=getDaysBetweenDate(getFormatDateTime(addMonthsToDate(DateUtil.parseDate(date1, "yyyy-MM-dd"),months),"yyyy-MM-dd"),date2);

map.put(1, months);

map.put(2, days);

}

return map;

}

/**

* 计算两日期之间相隔月份和天数,目前只有按月计算用到 2012.03.09

* @return

*/

public static Map<Integer, Integer> getMonthAndDaysBetweenDate2(String date1,String date2){

Map<Integer, Integer>  map=new HashMap();

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

Date d1 = null;

try {

d1 = sd.parse(date1);

} catch (ParseException e) {

e.printStackTrace();

}

Date d2=null;

try {

d2 = sd.parse(date2);

} catch (ParseException e) {

e.printStackTrace();

}

int months=0;//相差月份

int days=0;

int y1=d1.getYear();

int y2=d2.getYear();

int dm1=d2.getMonth();//起始日期月份

int dm2=d2.getMonth();//结束日期月份

int dd1=d1.getDate(); //起始日期天

int dd2=d2.getDate(); //结束日期天

if(d1.getTime()<d2.getTime()){

months=d2.getMonth()-d1.getMonth()+(y2-y1)*12;

if(dd2<dd1){

months=months-1;

}

if(dd2==dd1-1){

months = months +1;

}

System.out.println(getFormatDateTime(addMonthsToDate(DateUtil.parseDate(date1, "yyyy-MM-dd"),months),"yyyy-MM-dd"));

days=getDaysBetweenDate2(getFormatDateTime(addMonthsToDate(DateUtil.parseDate(date1, "yyyy-MM-dd"),months),"yyyy-MM-dd"),date2);

map.put(1, months);

map.put(2, days);

}

return map;

}

/**

* 计算两日期之间相隔月份和天数,目前只有按月计算用到 2012.03.09

* @return

*/

public static Map<Integer, Integer> getMonthAndDaysBetweenDate3(String date1,String date2){

Map<Integer, Integer>  map=new HashMap();

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

Date d1 = null;

try {

d1 = sd.parse(date1);

} catch (ParseException e) {

e.printStackTrace();

}

Date d2=null;

try {

d2 = sd.parse(date2);

} catch (ParseException e) {

e.printStackTrace();

}

int months=0;//相差月份

int days=0;

int y1=d1.getYear();

int y2=d2.getYear();

int dm1=d2.getMonth();//起始日期月份

int dm2=d2.getMonth();//结束日期月份

int dd1=d1.getDate(); //起始日期天

int dd2=d2.getDate(); //结束日期天

if(d1.getTime()<d2.getTime()){

months=d2.getMonth()-d1.getMonth()+(y2-y1)*12;

if(dd2<dd1){

months=months-1;

}

System.out.println(getFormatDateTime(addMonthsToDate(DateUtil.parseDate(date1, "yyyy-MM-dd"),months),"yyyy-MM-dd"));

days=getDaysBetweenDate2(getFormatDateTime(addMonthsToDate(DateUtil.parseDate(date1, "yyyy-MM-dd"),months),"yyyy-MM-dd"),date2);

if(dd2 == dd1){

days = 0;

}

map.put(1, months);

map.put(2, days);

}

return map;

}

/**

* 计算两日期之间的天数

* @return

*/

public final static int getDaysBetweenDate(String date1,String date2){

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

Date d1 = null;

try {

d1 = sd.parse(date1);

} catch (ParseException e) {

e.printStackTrace();

}

Date d2=null;

try {

d2 = sd.parse(date2);

} catch (ParseException e) {

e.printStackTrace();

}

Calendar c1 = Calendar.getInstance();

c1.setTime(d1);

Calendar c2 = Calendar.getInstance();

c2.setTime(d2);

long diff = (c2.getTimeInMillis()-c1.getTimeInMillis())/(1000*60*60*24);

return ((Long)diff).intValue();

}

/**

* 计算两日期之间的天数,目前只有按月计算用到2012.03.09

* @return

*/

public final static int getDaysBetweenDate2(String date1,String date2){

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

Date d1 = null;

try {

d1 = sd.parse(date1);

} catch (ParseException e) {

e.printStackTrace();

}

Date d2=null;

try {

d2 = sd.parse(date2);

} catch (ParseException e) {

e.printStackTrace();

}

int rdays =0;

if(d2.getDate()>= d1.getDate()){

rdays = d2.getDate()-d1.getDate()+1;

}else{

rdays = d2.getDate()+30-d1.getDate()+1;

}

return rdays;

}

/**

*

* @param dateString 日期字符串 如2011-01-03

* @param dateFormate  日期格式 如yyyy-MM-dd

* @return 根据传入的日期字符串和日期格式返回指定格式的日期

*/

public final static Date parseDate(String dateString,String dateFormate) {

SimpleDateFormat sd=new SimpleDateFormat(dateFormate);

Date date=null;

try {

date=sd.parse(dateString);

} catch (Exception ex) {

logger.error("Pase the Date(" + dateString + ") occur errors:"

+ ex.getMessage());

}

return date;

}

public static String getNowDate(String formart){

String temp_str="";

Date dt = new Date();

SimpleDateFormat sdf = new SimpleDateFormat(formart);

temp_str=sdf.format(dt);

return temp_str;

}

/**

* 计算两日期之间的相差月份和天数

* @return

*/

public final static int getMonthDaysBetweenDate(String date1,String date2){

Date d1=new Date(date1);

return 0;

}

public static String dateToStr(Date date, String format){

SimpleDateFormat dateFormat = new SimpleDateFormat(format);

return dateFormat.format(date);

}

/**得到今天中小时(24H)*/

public final static int getHourOfDay(){

Calendar calendar=Calendar.getInstance();

return calendar.get(calendar.HOUR_OF_DAY);

}

/**得到今天中分钟*/

public final static int getMinOfDay(){

Calendar calendar=Calendar.getInstance();

return calendar.get(calendar.MINUTE);

}

public final static long getDateTimeNow(){

Date date=new Date();

return date.getTime();

}

// 返回第几个月份,不是几月

// 季度一年四季, 第一季度:2月-4月, 第二季度:5月-7月, 第三季度:8月-10月, 第四季度:11月-1月

public static int getQuarterInMonth(int month, boolean isQuarterStart) {

int months[] = { 1, 4, 7, 10 };

if (!isQuarterStart) {

months = new int[] { 3, 6, 9, 12 };

}

if (month >= 2 && month <= 4)

return months[0];

else if (month >= 5 && month <= 7)

return months[1];

else if (month >= 8 && month <= 10)

return months[2];

else

return months[3];

}

// 返回第几季度

public static int getQuarterInMonth(int month) {

int months[] = { 1, 2, 3, 4 };  //4个季度

if (month >= 1 && month <= 3)

return months[0];

else if (month >= 4 && month <= 6)

return months[1];

else if (month >= 7 && month <= 9)

return months[2];

else

return months[3];

}

public static String getBetweenDate(String date1,String date2){

return null;

}

public static String dateDiff(String startTime, String endTime,

String format, String str) {

String ret="";

// 按照传入的格式生成一个simpledateformate对象

SimpleDateFormat sd = new SimpleDateFormat(format);

long nd = 1000 * 24 * 60 * 60;// 一天的毫秒数

long nh = 1000 * 60 * 60;// 一小时的毫秒数

long nm = 1000 * 60;// 一分钟的毫秒数

long ns = 1000;// 一秒钟的毫秒数

long diff;

long day = 0;

long hour = 0;

long min = 0;

long sec = 0;

// 获得两个时间的毫秒时间差异

try {

diff = sd.parse(endTime).getTime() - sd.parse(startTime).getTime();

day = diff / nd;// 计算差多少天

hour = diff % nd / nh + day * 24;// 计算差多少小时

min = diff % nd % nh / nm + day * 24 * 60;// 计算差多少分钟

sec = diff % nd % nh % nm / ns;// 计算差多少秒

// 输出结果

System.out.println("" + day + "天" + (hour - day * 24) + "小时"

+ (min - day * 24 * 60) + "分钟" + sec + "秒。");

System.out.println("hour=" + hour + ",min=" + min);

ret="" + day + "天" + (hour - day * 24) + "小时"

+ (min - day * 24 * 60) + "分钟" + sec + "秒。";

if (str.equalsIgnoreCase("h")) {

// return hour;

} else {

//return min;

}

} catch (ParseException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

if (str.equalsIgnoreCase("h")) {

//return hour;

} else {

//return min;

}

return ret;

}

public static String getCurrentMonthFistDay() {

Calendar cal = Calendar.getInstance();

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

//当前月的最后一天

cal.set( Calendar.DATE, 1 );

cal.roll(Calendar.DATE, - 1 );

//当前月的第一天

cal.set(GregorianCalendar.DAY_OF_MONTH, 1);

Date beginTime=cal.getTime();

String beginTime1=datef.format(beginTime)+" 00:00:00";

return beginTime1;

}

public static String getCurrentMonthLastDay() {

Calendar cal = Calendar.getInstance();

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

//当前月的最后一天

cal.set( Calendar.DATE, 1 );

cal.roll(Calendar.DATE, - 1 );

Date endTime=cal.getTime();

String endTime1=datef.format(endTime)+" 23:59:59";

return endTime1;

}

/**

* @param date1  起始日期

* @param date2 截止日期

* @return  两日期之间的天数

*/

public final static int getDaysBetweenDate(Date date1,Date date2){

Calendar c1 = Calendar.getInstance();

c1.setTime(date1);

c1.set(Calendar.HOUR_OF_DAY, 0);

c1.set(Calendar.MINUTE, 0);

c1.set(Calendar.SECOND, 0);

c1.set(Calendar.MILLISECOND, 0);

Calendar c2 = Calendar.getInstance();

c2.setTime(date2);

c2.set(Calendar.HOUR_OF_DAY, 0);

c2.set(Calendar.MINUTE, 0);

c2.set(Calendar.SECOND, 0);

c2.set(Calendar.MILLISECOND, 0);

long diff = (c2.getTimeInMillis()-c1.getTimeInMillis())/(1000*60*60*24);

return ((Long)diff).intValue();

}

/**

* 获取一个日期的一天第一个时间和最后一个时间

* strDate 传入日期

* strKey用来判断是获取最开始日期还是最后日期 first  开始 end最后

* 返回的日期格式为 String类型

*/

public static String getFirstDate(Date strDate,String strKey){

SimpleDateFormat formatDate = new SimpleDateFormat("yyyy-MM-dd 00:00:00");

SimpleDateFormat formatEndDate = new SimpleDateFormat("yyyy-MM-dd 23:59:59");

if(strDate!=null&&!"".equals(strDate)){

if(strKey!=null&&"first".equals(strKey)){

return formatDate.format(strDate);

}if(strKey!=null&&"end".equals(strKey)){

return formatEndDate.format(strDate);

}else{

return formatDate.format(strDate);

}

}else{

return null;

}

}

/**

* 获取一个日期的一天第一个时间和最后一个时间

* strDate 传入日期

* strKey用来判断是获取最开始日期还是最后日期 first  开始 end最后

* 返回的日期格式为Date  类型

*/

public static Date getDateFirstDate(Date strDate,String strKey){

try {

SimpleDateFormat formatDate = new SimpleDateFormat("yyyy-MM-dd HH:mm:SS");

String date=getFirstDate(strDate,strKey);

if(date!=null){

return formatDate.parse(date);

}else{

return null;

}

} catch (Exception e) {

e.printStackTrace();

return null;

}

}

public static String getMaxMonthDate(String date) throws ParseException{

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

Calendar calendar = Calendar.getInstance();

calendar.setTime(dateFormat.parse(date));

calendar.set(Calendar.DAY_OF_MONTH, calendar.getActualMaximum(Calendar.DAY_OF_MONTH));

return dateFormat.format(calendar.getTime());

}

}

时间工具类DateUtil的更多相关文章

  1. 基于Java8的日期时间工具类DateTimeFormatter

    原文:https://blog.csdn.net/qq_36596145/article/details/85331002 import java.time.Instant; import java. ...

  2. java8时间类API安全问题(赠送新的时间工具类哟)

    LocalDateTime等新出的日期类全是final修饰的类,不能被继承,且对应的日期变量都是final修饰的,也就是不可变类.赋值一次后就不可变,不存在多线程数据问题. simpleDateFor ...

  3. hutool的时间工具类

    hutool的时间工具类 糊涂的时间工具类有很多使用方法,用到了这几个 日期向后偏移     String now = DateUtil.now();        Date date4= DateU ...

  4. 代码片段:基于 JDK 8 time包的时间工具类 TimeUtil

    摘要: 原创出处:www.bysocket.com 泥瓦匠BYSocket 希望转载,保留摘要,谢谢! “知识的工作者必须成为自己时间的首席执行官.” 前言 这次泥瓦匠带来的是一个好玩的基于 JDK ...

  5. Java日期工具类,Java时间工具类,Java时间格式化

    Java日期工具类,Java时间工具类,Java时间格式化 >>>>>>>>>>>>>>>>>&g ...

  6. 小记Java时间工具类

    小记Java时间工具类 废话不多说,这里主要记录以下几个工具 两个时间只差(Data) 获取时间的格式 格式化时间 返回String 两个时间只差(String) 获取两个时间之间的日期.月份.年份 ...

  7. 超详细的Java时间工具类

    package com.td.util; import java.sql.Timestamp; import java.text.ParseException; import java.text.Pa ...

  8. java时间工具类

    在项目中,很多地方需要根据时间获取相应的数据,将时间格式化,或者时间比较等相关操作.一个良好的工具类不仅可以减少代码冗余,还能促进业务处理,加快进度. /** * @author: lxw * @Da ...

  9. Apache Commons Lang之日期时间工具类

    码农不识Apache,码尽一生也枉然. FastDateFormat FastDateFormat是一个快速且线程安全的时间操作类,它完全可以替代SimpleDateFromat.因为是线程安全的,所 ...

随机推荐

  1. 【转】Go调度器原理浅析

    goroutine是golang的一大特色,或者可以说是最大的特色吧(据我了解),这篇文章主要翻译自Morsing的[这篇博客](http://morsmachine.dk/go-scheduler) ...

  2. Python的插件化开发概述

    Python的插件化开发概述 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.插件化开发 动态导入: 运行时,根据用户需求(提供字符串),找到模块的资源动态加载起来. 1> ...

  3. 使用Arduino开发板和ESP8266从互联网读取数据

    ESP8266-01是一款很强大的模块,可以满足我们任何IOT项目的需求.自发布以来,它已经形成了一个很强大的群体,并演变成一个易于使用.价格低廉且功能强大的Wi-Fi模块.另一个更受欢迎的开源平台是 ...

  4. HRBUST 2040 二叉树的遍历

    给出一棵二叉树的中序和前序遍历,输出它的后序遍历. Input 本题有多组数据,输入处理到文件结束. 每组数据的第一行包括一个整数n,表示这棵二叉树一共有n个节点. 接下来的一行每行包括n个整数,表示 ...

  5. Java并发包--ConcurrentSkipListSet

    https://www.cnblogs.com/kexianting/p/8550459.html import java.util.concurrent.ConcurrentLinkedQueue; ...

  6. Centos7 Rsync怎么实现热备份笔记

    应用场景:备份Web服务器相关目录下的数据文件,确保指定目录下的所有文件同步. 操作系统:Centos 7 服务器两台:web服务器 172.19.242.70  备份服务器 172.19.242.7 ...

  7. BZOJ-1085:骑士精神 (迭代加深 + A*搜索)

    题意:给定一个5*5的棋盘,上面有白马给妈给12匹,以及一个空格.问是否能在15步内有给定棋盘转移到目标棋盘. 如果可以,输出最小步数. 否则输出-1: 思路:由于步数比较小,我们就直接不记录状态vi ...

  8. wordpress调用缩略图/特色图url

    调用缩略图的url <a href="<?php the_post_thumbnail_url( 'full' ); ?>"><?php the_po ...

  9. 接口测试-Java代码实现接口请求并封装

    前言:在接口测试和Java开发中对接口请求方法进行封装都非常有必要,无论是在我们接口测试的时候还是在开发自测,以及调用某些第三方接口时,都能为我们调用和调试接口提供便捷: Java实现对http请求的 ...

  10. opencv图像处理之gamma变换

    import cv2 import numpy as np img=cv2.imread('4.jpg') def adjust_gamma(image, gamma=1.0): invGamma = ...