C#底层库--日期扩展类(上周、本周、明年、前年等)

news2025/7/19 4:36:59

系列文章

C#底层库–记录日志帮助类
本文链接:https://blog.csdn.net/youcheng_ge/article/details/124187709

C#底层库–数据库访问帮助类(MySQL版)
本文链接:https://blog.csdn.net/youcheng_ge/article/details/126886379

C#底层库–获取文件版本和MD5值
本文链接:https://blog.csdn.net/youcheng_ge/article/details/112513871

C#底层库–操作文件帮助类FileHelper(获取目录的所有文件)
本文链接:https://blog.csdn.net/youcheng_ge/article/details/126887161

C#底层库–操作Excel帮助类(读取、导出表格)
本文链接:https://blog.csdn.net/youcheng_ge/article/details/126887445

C#底层库–软件版本管理XML
本文链接:https://blog.csdn.net/youcheng_ge/article/details/110195766

C#底层库–随机数生成类
本文链接:https://blog.csdn.net/youcheng_ge/article/details/126888812

C#底层库–正则表达式帮助类
本文链接:https://blog.csdn.net/youcheng_ge/article/details/109745286

C#底层库–CSV和DataTable相互转换
本文链接:https://blog.csdn.net/youcheng_ge/article/details/128804367

C#底层库–Image图片操作类
本文链接:https://blog.csdn.net/youcheng_ge/article/details/128805298

C#底层库–JSON序列化、反序列化扩展类
本文链接:https://blog.csdn.net/youcheng_ge/article/details/128805705

C#底层库–cookie操作辅助类
本文链接:https://blog.csdn.net/youcheng_ge/article/details/128816347

C#底层库–Session操作辅助类
本文链接:https://blog.csdn.net/youcheng_ge/article/details/128817096

C#底层库–数据实体类
本文链接:https://blog.csdn.net/youcheng_ge/article/details/128816638

C#底层库–Image图片操作类
本文链接:https://blog.csdn.net/youcheng_ge/article/details/128805298

C#底层库–数据库类型与程序类型转换类
本文链接:https://blog.csdn.net/youcheng_ge/article/details/128817610

文章目录

  • 系列文章
  • 前言
  • 一、底层库介绍
  • 二、底层库源码
    • 2.1 创建类DatePeriod.cs日期枚举型
    • 2.2 创建类StringExt.cs字符串扩展
    • 2.3 创建类BizHandler.cs
    • 2.4 创建类DateTimeExtension.cs
    • 2.5 创建类DateTimeUtils.cs
  • 三、调用方法
  • 三、项目案列


前言

本专栏为【底层库】,将介绍研发过程中 通用的函数。我们将这些固化的源码,进行重写、规范封装、单元测试、集成测试,从而形成通用化模块库,本专栏称为“底层库”。

作为研发人员的你,并不需要花大量时间,完全掌握“底层库”的含义,你只需要几行调用代码,就可以解决一些项目上碰到的难题。大家有任何问题,可以评论区反馈,私信我。

底层库已实现功能:数据库操作、加解密算法、日志记录、HTTP通信、Socket通信、API前后端交互、邮件发送、文件操作、配置参数存储、Excel导入导出、CSV和DataTable转换、压缩解压、自动编号、Session操作等,

一、底层库介绍

DateTimeExtension.cs日期扩展类,本类的最要用途:用户日期查询,可以设置“下拉框”查找项,通过本底层库,可以自动获取“开始日期”、“结束日期”。
可实现功能:本年、上年、本月、上月、本周、上周、今天、默认日、空日期、下周、下月、下年、昨天、财务月、财务上月、财务下月。
本底层库已经集成封装,以下展示的是库源代码。

二、底层库源码

2.1 创建类DatePeriod.cs日期枚举型

using System;

namespace WBF.Utils
{
    public enum DatePeriod
    {
        ThisYear,
        LastYear,
        ThisMonth,
        LastMonth,
        ThisWeek,
        LastWeek,
        Custom,
        None,
        NextWeek,
        NextMonth,
        NextYear,
        Yesterday,
        Today,
        AccountThisMonth,
        AccountLastMonth,
        AccountNextMonth
    }
}

2.2 创建类StringExt.cs字符串扩展

创建类StringExt.cs,用于字符串拼接,加引号,部分代码。


namespace WBF.Utils
{
    public static class StringExt
    {
        /// <summary>
        /// 给字符串两边添加单引号(同时会将内部单引号替换成双单引号)
        /// </summary>
        /// <param name="S"></param>
        /// <returns></returns>
        public static string QuotedStr(this string S)
        {
            return "'" + S.Replace("'", "''") + "'";
        }

        /// <summary>
        /// 给字符串两边添加括号
        /// </summary>
        /// <param name="str">字符串</param>
        /// <returns>返回带括号的字符串</returns>
        public static string BracketStr(this string S)
        {
            return "(" + S + ")";
        }

        /// <summary>
        /// 使用And连接两个SQL条件
        /// </summary>
        /// <param name="strCondition1"></param>
        /// <param name="strCondition2"></param>
        /// <returns></returns>
        public static string ConcatSQL(this string S, string strCondition2)
        {
            if (S.Trim() == "" || strCondition2.Trim() == "")
            {
                return S + strCondition2;
            }
            return S + " and " + strCondition2;
        }
    }
}

2.3 创建类BizHandler.cs

using System;

namespace WBF.Utils
{
    public class BizHandler
    {
        public static DateTime GetSettleMonthStartDate()
        {
            //return BizHandler.GetSettleMonthStartDate(SysParams.Instance.loginInfo.LoginTime);
            return BizHandler.GetSettleMonthStartDate(DateTime.Now);
        }
        public static DateTime GetSettleMonthStartDate(DateTime a_dtDay)
        {
            int day = a_dtDay.Day;
            //string value = SysParams.Instance.SysPar.GetValue("CW_AccoutIsNaturalMonth");
            string value = "F";
            if (string.Compare(value, "T", true) == 0)
            {
                return a_dtDay.Date.AddDays((double)(checked(0 - day + 1)));
            }
            //int num = (int)Convert.ToInt16(SysParams.Instance.SysPar.GetValue("month_start_day"));
            int num = 0;
            if (num == 0)
            {
                num = 1;
            }
            DateTime dateTime = new DateTime(a_dtDay.Year, a_dtDay.Month, 1);
            DateTime d = dateTime.AddMonths(1);
            DateTime d2 = dateTime.AddMonths(-1);
            TimeSpan timeSpan = d - dateTime;
            TimeSpan timeSpan2 = dateTime - d2;
            DateTime dateTime2;
            if ((double)num > timeSpan2.TotalDays)
            {
                dateTime2 = new DateTime(dateTime.Year, dateTime.Month, 1);
            }
            else if ((double)num > timeSpan.TotalDays)
            {
                dateTime2 = new DateTime(d2.Year, d2.Month, num);
            }
            else
            {
                dateTime2 = new DateTime(a_dtDay.Year, a_dtDay.Month, num);
            }
            if (dateTime2 > a_dtDay)
            {
                dateTime2 = dateTime2.AddMonths(-1);
            }
            return dateTime2;
        }

    }
}

2.4 创建类DateTimeExtension.cs

using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace WBF.Utils
{
    public static class DateTimeExtension
    {
        public static void GetSearchDate(DatePeriod a_DatePeriod, out DateTime a_dtStartDate, out DateTime a_dtEndDate)
        {
            //DateTime dateTime = SysParams.Instance.loginInfo.LoginTime.Date;
            DateTime dateTime = DateTime.Now.Date;
            a_dtStartDate = dateTime;
            a_dtEndDate = dateTime;
            switch (a_DatePeriod)
            {
                case DatePeriod.ThisYear:
                    a_dtStartDate = new DateTime(dateTime.Year, 1, 1);
                    a_dtEndDate = new DateTime(dateTime.Year, 12, 31);
                    return;
                case DatePeriod.LastYear:
                    dateTime = dateTime.AddYears(-1);
                    a_dtStartDate = new DateTime(dateTime.Year, 1, 1);
                    a_dtEndDate = new DateTime(dateTime.Year, 12, 31);
                    return;
                case DatePeriod.ThisMonth:
                    a_dtStartDate = new DateTime(dateTime.Year, dateTime.Month, 1);
                    a_dtEndDate = a_dtStartDate.AddMonths(1).AddDays(-1.0);
                    return;
                case DatePeriod.LastMonth:
                    dateTime = dateTime.AddMonths(-1);
                    a_dtStartDate = new DateTime(dateTime.Year, dateTime.Month, 1);
                    a_dtEndDate = a_dtStartDate.AddMonths(1).AddDays(-1.0);
                    return;
                case DatePeriod.ThisWeek:
                    DateTimeExtension.GetWeekRange(dateTime, out a_dtStartDate, out a_dtEndDate);
                    return;
                case DatePeriod.LastWeek:
                    dateTime = dateTime.AddDays(-7.0);
                    DateTimeExtension.GetWeekRange(dateTime, out a_dtStartDate, out a_dtEndDate);
                    return;
                case DatePeriod.Custom:
                    break;
                case DatePeriod.None:
                    a_dtStartDate = new DateTime(1900, 1, 1);
                    a_dtEndDate = new DateTime(1900, 1, 1);
                    return;
                case DatePeriod.NextWeek:
                    dateTime = dateTime.AddDays(7.0);
                    DateTimeExtension.GetWeekRange(dateTime, out a_dtStartDate, out a_dtEndDate);
                    return;
                case DatePeriod.NextMonth:
                    dateTime = dateTime.AddMonths(1);
                    a_dtStartDate = new DateTime(dateTime.Year, dateTime.Month, 1);
                    a_dtEndDate = a_dtStartDate.AddMonths(1).AddDays(-1.0);
                    return;
                case DatePeriod.NextYear:
                    dateTime = dateTime.AddYears(1);
                    a_dtStartDate = new DateTime(dateTime.Year, 1, 1);
                    a_dtEndDate = new DateTime(dateTime.Year, 12, 31);
                    return;
                case DatePeriod.Yesterday:
                    a_dtStartDate = dateTime.AddDays(-1.0);
                    a_dtEndDate = dateTime.AddDays(-1.0);
                    return;
                case DatePeriod.Today:
                    a_dtStartDate = dateTime;
                    a_dtEndDate = dateTime;
                    return;
                case DatePeriod.AccountThisMonth:
                    {
                        DateTime settleMonthStartDate = BizHandler.GetSettleMonthStartDate();
                        a_dtStartDate = settleMonthStartDate;
                        a_dtEndDate = settleMonthStartDate.AddMonths(1).AddDays(-1.0);
                        return;
                    }
                case DatePeriod.AccountLastMonth:
                    {
                        DateTime settleMonthStartDate = BizHandler.GetSettleMonthStartDate();
                        a_dtStartDate = settleMonthStartDate.AddMonths(-1);
                        a_dtEndDate = settleMonthStartDate.AddDays(-1.0);
                        return;
                    }
                case DatePeriod.AccountNextMonth:
                    {
                        DateTime settleMonthStartDate = BizHandler.GetSettleMonthStartDate();
                        a_dtStartDate = settleMonthStartDate.AddMonths(1);
                        a_dtEndDate = settleMonthStartDate.AddDays(-1.0).AddMonths(2);
                        break;
                    }
                default:
                    return;
            }
        }

        //public static DateTime GetServerDate()
        //{
        //    FetchData fetchData = new FetchData();
        //    fetchData.InitSQL("select getdate() as d", false);
        //    if (fetchData.Fetch())
        //    {
        //        DataTable dataTable = fetchData.Data.Tables[0];
        //        return Convert.ToDateTime(dataTable.Rows[0][0]).Date;
        //    }
        //    throw new Abort();
        //}

        //public static DateTime GetServerTime()
        //{
        //    FetchData fetchData = new FetchData();
        //    fetchData.InitSQL("select getdate() as d", false);
        //    if (fetchData.Fetch())
        //    {
        //        DataTable dataTable = fetchData.Data.Tables[0];
        //        return Convert.ToDateTime(dataTable.Rows[0][0]);
        //    }
        //    throw new Abort();
        //}

        public static void GetWeekRange(DateTime a_dTime, out DateTime a_dStartDay, out DateTime a_dEndDay)
        {
            checked
            {
                try
                {
                    int num = (int)a_dTime.DayOfWeek;
                    num = ((num == 0) ? 7 : num);
                    a_dStartDay = a_dTime.AddDays((double)(0 - (num - 1))).Date;
                    a_dEndDay = a_dTime.AddDays((double)(7 - num)).Date;
                }
                catch (Exception ex)
                {
                    throw new Exception(ex.Message);
                }
            }
        }

        public static DateTime AddWeek(this DateTime a_Date, int a_WeekCount, ref int a_intYear, ref int a_intWeek)
        {
            DateTime dateTime = a_Date.AddDays((double)(checked(a_WeekCount * 7)));
            DateTimeUtils.GetWeekIndex(dateTime, ref a_intYear, ref a_intWeek);
            return dateTime;
        }

        public static DateTime AddWeek(this DateTime a_Date, int a_WeekCount, ref DateTime a_dStart, ref DateTime a_dEnd)
        {
            DateTime dateTime = a_Date.AddDays((double)(checked(a_WeekCount * 7)));
            DateTimeUtils.GetWeekRange(dateTime, ref a_dStart, ref a_dEnd);
            return dateTime;
        }

        //public static bool GetYearAndWeekIndex(DateTime a_dtDatetime, ref int a_intYear, ref int a_intWeek)
        //{
        //    FetchData fetchData = new FetchData();
        //    string a_strSQL = string.Concat(new string[]
        //    {
        //        "select datepart(yyyy,",
        //        a_dtDatetime.ToShortDateString().QuotedStr(),
        //        ") as sys_year,  datepart(wk,",
        //        a_dtDatetime.ToShortDateString().QuotedStr(),
        //        ") as sys_week"
        //    });
        //    fetchData.InitSQL(a_strSQL, false);
        //    if (fetchData.Fetch())
        //    {
        //        a_intYear = (int)Convert.ToInt16(fetchData.Data.Tables[0].Rows[0]["sys_year"]);
        //        a_intWeek = (int)Convert.ToInt16(fetchData.Data.Tables[0].Rows[0]["sys_week"]);
        //        return true;
        //    }
        //    a_intYear = 0;
        //    a_intWeek = 0;
        //    return false;
        //}
    }
}


2.5 创建类DateTimeUtils.cs

using System;

namespace WBF.Utils
{
    public class DateTimeUtils
    {
        public static string GetWeekDay(string strDate)
        {
            string weekDay;
            try
            {
                DateTime a_dtDateTime = Convert.ToDateTime(strDate);
                weekDay = DateTimeUtils.GetWeekDay(a_dtDateTime);
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
            return weekDay;
        }

        public static string GetWeekDay(DateTime a_dtDateTime)
        {
            string weekDay;
            try
            {
                int dayOfWeek = (int)a_dtDateTime.DayOfWeek;
                weekDay = DateTimeUtils.GetWeekDay(dayOfWeek);
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
            return weekDay;
        }

        public static int GetMaxWeekOfYear(int a_intYear)
        {
            int result;
            try
            {
                DateTime minValue = DateTime.MinValue;
                DateTime minValue2 = DateTime.MinValue;
                DateTimeUtils.GetStartAndEndDate(a_intYear, ref minValue, ref minValue2);
                result = checked(minValue2.Subtract(minValue).Days + 1) / 7;
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
            return result;
        }

        public static int GetMaxWeekOfYear(DateTime dTime)
        {
            int maxWeekOfYear;
            try
            {
                maxWeekOfYear = DateTimeUtils.GetMaxWeekOfYear(dTime.Year);
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
            return maxWeekOfYear;
        }

        public static void GetWeekIndex(DateTime dTime, ref int a_intYear, ref int a_intWeek)
        {
            checked
            {
                try
                {
                    DateTime minValue = DateTime.MinValue;
                    DateTime minValue2 = DateTime.MinValue;
                    DateTimeUtils.GetStartAndEndDate(dTime.Year, ref minValue, ref minValue2);
                    if (dTime > minValue2)
                    {
                        a_intYear = dTime.Year + 1;
                        a_intWeek = 1;
                    }
                    else if (dTime < minValue)
                    {
                        a_intYear = dTime.Year - 1;
                        a_intWeek = DateTimeUtils.GetMaxWeekOfYear(a_intYear);
                    }
                    else
                    {
                        int num = (int)dTime.DayOfWeek;
                        num = ((num == 0) ? 7 : num);
                        DateTime dateTime = dTime.AddDays((double)(0 - (num - 1)));
                        a_intYear = dTime.Year;
                        a_intWeek = dateTime.Subtract(minValue).Days / 7 + 1;
                    }
                }
                catch (Exception ex)
                {
                    throw new Exception(ex.Message);
                }
            }
        }

        private static void GetStartAndEndDate(int a_intYear, ref DateTime a_dtStart, ref DateTime a_dtEnd)
        {
            DateTime dateTime = new DateTime(a_intYear, 1, 1);
            DateTime dateTime2 = new DateTime(a_intYear, 12, 31);
            int num = (int)dateTime.Date.DayOfWeek;
            int num2 = (int)dateTime2.Date.DayOfWeek;
            if (num == 0)
            {
                num = 7;
            }
            if (num2 == 0)
            {
                num2 = 7;
            }
            checked
            {
                if (num > 4)
                {
                    a_dtStart = dateTime.AddDays((double)(7 - num + 1));
                }
                else
                {
                    a_dtStart = dateTime.AddDays((double)(0 - (num - 1)));
                }
                if (num2 < 4)
                {
                    a_dtEnd = dateTime2.AddDays((double)(0 - num2));
                    return;
                }
                a_dtEnd = dateTime2.AddDays((double)(7 - num2));
            }
        }

        public static void GetWeekIndex(string a_strDate, ref int a_intYear, ref int a_intWeek)
        {
            try
            {
                DateTime dTime = Convert.ToDateTime(a_strDate);
                DateTimeUtils.GetWeekIndex(dTime, ref a_intYear, ref a_intWeek);
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
        }

        public static string GetWeekRange(DateTime dTime, ref DateTime a_dStartDay, ref DateTime a_dEndDay)
        {
            checked
            {
                string result;
                try
                {
                    int num = (int)dTime.DayOfWeek;
                    num = ((num == 0) ? 7 : num);
                    a_dStartDay = dTime.AddDays((double)(0 - (num - 1))).Date;
                    a_dEndDay = dTime.AddDays((double)(7 - num)).Date;
                    result = DateTimeUtils.WeekRangeToString(a_dStartDay, a_dEndDay);
                }
                catch (Exception ex)
                {
                    throw new Exception(ex.Message);
                }
                return result;
            }
        }

        public static string GetWeekRange(int a_intYear, int a_intWeekIndex, ref DateTime a_dtStartDay, ref DateTime a_dtEndDay)
        {
            string result;
            try
            {
                if (a_intWeekIndex < 1)
                {
                    throw new Exception("周数必须大于0!");
                }
                DateTime minValue = DateTime.MinValue;
                DateTime minValue2 = DateTime.MinValue;
                DateTimeUtils.GetStartAndEndDate(a_intYear, ref minValue, ref minValue2);
                int maxWeekOfYear = DateTimeUtils.GetMaxWeekOfYear(a_intYear);
                if (a_intWeekIndex > maxWeekOfYear)
                {
                    throw new Exception(a_intYear.ToString() + "年没有第" + a_intWeekIndex.ToString() + "周");
                }
                a_dtStartDay = minValue.AddDays((double)(checked((a_intWeekIndex - 1) * 7))).Date;
                a_dtEndDay = a_dtStartDay.AddDays(6.0).Date;
                result = DateTimeUtils.WeekRangeToString(a_dtStartDay, a_dtEndDay);
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
            return result;
        }

        private static string WeekRangeToString(DateTime weekRangeStart, DateTime weekRangeEnd)
        {
            string str = weekRangeStart.ToString("yyyy/MM/dd");
            string str2 = weekRangeEnd.ToString("yyyy/MM/dd");
            return str + "~" + str2;
        }

        public static string GetWeekDay(int index)
        {
            string result = string.Empty;
            switch (index)
            {
                case 0:
                    result = "星期日";
                    break;
                case 1:
                    result = "星期一";
                    break;
                case 2:
                    result = "星期二";
                    break;
                case 3:
                    result = "星期三";
                    break;
                case 4:
                    result = "星期四";
                    break;
                case 5:
                    result = "星期五";
                    break;
                case 6:
                    result = "星期六";
                    break;
            }
            return result;
        }
    }
}

三、调用方法

我这里写了一个测试用例,我们看一下效果。

        static void Main(string[] args)
        {
            DateTime l_dtstart;
            DateTime l_dtend;

            DateTimeExtension.GetSearchDate(DatePeriod.Today, out l_dtstart, out l_dtend);
            DateTimeExtension.GetSearchDate(DatePeriod.LastWeek, out l_dtstart, out l_dtend);
            DateTimeExtension.GetSearchDate(DatePeriod.ThisWeek, out l_dtstart, out l_dtend);
            DateTimeExtension.GetSearchDate(DatePeriod.Yesterday, out l_dtstart, out l_dtend);

        }

DatePeriod.Today
DatePeriod.LastWeek
DatePeriod.ThisWeek
DatePeriod.Yesterday

三、项目案列

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/347562.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

axios中的GET POST PUT PATCH,发送请求时params和data的区别

axios 中 get/post请求方式 1. 前言 最近突然发现post请求可以使用params方式传值&#xff0c;然后想总结一下其中的用法。 2.1 分类 经过查阅资料&#xff0c;get请求是可以通过body传输数据的&#xff0c;但是许多工具类并不支持此功能。 在postman中&#xff0c;选择get请…

以before为例 完成一个aop代理强化方法案例

观看本文 首先 您需要做好Spring aop的准备工作 具体可以参考我的文章 java Spring aop入门准备工作 首先 我们创建一个包 我这里叫 Aop 然后在Aop包下创建一个类 叫 User 参考代码如下 package Aop;public class User {public void add(){System.out.println("add....…

android kotlin 协程(三) 理解挂起,恢复以及job

android kotlin 协程(三) 理解挂起,恢复以及job 前言: 通过上两篇的基础入门,相信大家对协程api已经有了一个基本的影响,本篇开始尝试理解挂起于恢复. 本篇不涉及源码, 通过很多应用案例,来理解挂起于恢复! 协程执行流程理解 还是老套路,先来看原始效果 参考图1 在这里我们知…

电子技术——目录

电子技术——目录 第一章——信号与放大器 第二章——运算放大器 第三章——半导体器件 第四章——二极管 第五章——金属氧化物场效应晶体管 目录&#xff1a; MOS管的物理结构MOS管的CV特性MOS放大器基础MOS管的小信号模型基本MOS放大器配置MOS放大器的DC偏置分立MOS放…

传奇开服方法教程:传奇开服在哪些网站打广告?传奇发布站打广告技巧

传奇开服方法教程&#xff1a;传奇开服在哪些网站打广告&#xff1f;传奇发布站打广告技巧 纯分享经验以及方法&#xff1a;开传奇sf&#xff0c;成本最高的就是广告费用了&#xff0c;为了让服人气更高&#xff0c;主播和发布站相信你们都已经尝试了&#xff0c;上人效果如何你…

全网详解 .npmrc 配置文件:比如.npmrc的优先级、命令行,如何配置.npmrc以及npm常用命令等

文章目录1. 文章引言2. 简述.npmrc3. 配置.npmrc3.1 .npmrc配置文件的优先级3.2 .npmrc设置的命令行3.3 如何设置.npmrc4. 配置发布组件5. npm常用命令6. 重要备注6.1 yarn6.2 scope命名空间6.3 镜像出错1. 文章引言 今天在某低代码平台开发项目时&#xff0c;看到如下编译配置…

Java实现调用ChatGPT的相关接口(附详细思路)

目录1.0.简单版2.0.升级版2-1.call.timeout()怎么传入新的超时值2-2.timeout(10, TimeUnit.SECONDS)两个参数的意思&#xff0c;具体含义3.0.进阶版3-1.java.net.SocketTimeoutException: 超时如何解决4.0.终极版1.0.简单版 以下是一个使用 Java 实际请求 ChatGPT 的简单示例代…

EasyExcel详解-写Excel

一、注解使用注解很简单&#xff0c;只要在对应的实体类上面加上注解即可。ExcelProperty用于匹配excel和实体类的匹配,参数如下&#xff1a;名称默认值描述value空用于匹配excel中的头&#xff0c;必须全匹配,如果有多行头&#xff0c;会匹配最后一行头orderInteger.MAX_VALUE…

硬件系统工程师宝典(6)-----如何减小信号串扰?

各位同学大家好&#xff0c;欢迎继续做客电子工程学习圈&#xff0c;今天我们继续来讲这本书&#xff0c;硬件系统工程师宝典。 上篇我们说到描述信号传输的过程的需要做好阻抗匹配&#xff0c;以减小信号的反射。今天我们来看看传输线之间的噪声干扰&#xff0c;那就是信号的…

rdma rocev2报文格式总结

格式如下&#xff1a; wireshark抓包&#xff0c;soft-roce(基于rocev2实现的)格式如下&#xff1a; 其实这里看着有点奇怪&#xff0c;ICRC是跟在Payload头后面的&#xff0c;不知道为什么抓包看到的却是在BTH头后面的&#xff0c;还有就是看不到FCS?? 其中BTH头的格式有…

极兔一面:Dockerfile如何优化?注意:千万不要只说减少层数

说在前面 在40岁老架构师 尼恩的读者交流群(50)中&#xff0c;面试题是一个非常、非常高频的交流话题。 最近&#xff0c;有小伙伴面试极兔时&#xff0c;遇到一个面试题&#xff1a; 如果优化 Dockerfile&#xff1f; 小伙伴没有回答好&#xff0c;只是提到了减少镜像层数。…

01背包问题 AcWing(JAVA)

有 N件物品和一个容量是 V的背包。每件物品只能使用一次。 第 i件物品的体积是 vi&#xff0c;价值是 wi。 求解将哪些物品装入背包&#xff0c;可使这些物品的总体积不超过背包容量&#xff0c;且总价值最大。 输出最大价值。 输入格式 第一行两个整数&#xff0c;N&#xff…

数据结构与算法(一):概述

数据结构学了有一年左右的时间了&#xff0c;但是一直没有详细地总结一下&#xff0c;现在回想起来&#xff0c;感觉有些内容忘记了。所以接下来一段时间我将重新归纳总结一下&#xff0c;算是温故而知新了。 一、数据结构 1、定义 数据结构是计算机存储、组织数据的方式。在…

excel学习笔记-导入外部文件,报错,数值格式变换,日期格式的转化,求和快捷键,冻结窗格

这里写目录标题一、导入外部文件1.导入csv文件2.导入txt文件3.修改txt内容&#xff0c;需要刷新才能看见更改二、报错三、数值格式变换四、日期格式的转化五、ALT &#xff0c;求和快捷键六、冻结窗格一、导入外部文件 1.导入csv文件 2.导入txt文件 3.修改txt内容&#xff0c;…

内网渗透(三十)之横向移动篇-利用远控工具向日葵横向移动

系列文章第一章节之基础知识篇 内网渗透(一)之基础知识-内网渗透介绍和概述 内网渗透(二)之基础知识-工作组介绍 内网渗透(三)之基础知识-域环境的介绍和优点 内网渗透(四)之基础知识-搭建域环境 内网渗透(五)之基础知识-Active Directory活动目录介绍和使用 内网渗透(六)之基…

力扣sql简单篇练习(十六)

力扣sql简单篇练习(十六) 1 产品销售分析|| 1.1 题目内容 1.1.1 基本题目信息 1.1.2 示例输入输出 1.2 示例sql语句 SELECT p.product_id,sum(s.quantity) total_quantity FROM Product p INNER JOIN Sales s ON p.product_ids.product_id GROUP BY p.product_id1.3 运行截…

explain 每个列的含义

官网传送门&#xff1a;https://dev.mysql.com/doc/refman/5.7/en/explain-output.html 实例表 DROP TABLE IF EXISTS actor;CREATE TABLE actor (id int(11) NOT NULL,name varchar(45) DEFAULT NULL,update_time datetime DEFAULT NULL,PRIMARY KEY (id)) ENGINEInnoDB DEFA…

【Java项目】基于Java+MySQL+Tomcat+maven+Servlet的个人博客系统的完整分析

✨哈喽&#xff0c;进来的小伙伴们&#xff0c;你们好耶&#xff01;✨ &#x1f6f0;️&#x1f6f0;️系列专栏:【Java项目】 ✈️✈️本篇内容:个人博客系统前后端分离实现&#xff01; &#x1f680;&#x1f680;个人代码托管github&#xff1a;博客系统源码地址&#xff…

maven解决包冲突简单方式(插件maven helper | maven指令)

文章目录使用idea插件maven helper使用maven指令在Java开发中&#xff0c;常常会遇到不同jar包之间存在冲突的情况&#xff0c;这可能会导致编译错误、运行时异常等问题。 使用idea插件maven helper 在idea安装插件maven helper 安装重启完之后点击pom文件&#xff0c;有一个De…

元宇宙基础设施:WEB 3.0 chain33 优势分析

WEB 3.0 chain33 优势分析 一、与以太坊兼容&#xff08;优势&#xff1a;兼容及开发成本低百倍&#xff09; 使用 Solidity 开发智能合约并部署在 EVM 虚拟机上是目前以太坊生态主流的开发 模式&#xff0c;目前看来不兼容以太坊或不能与以太坊跨链都可能是不归路&#xff0c;…