当前位置: 首页 > news >正文

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

系列文章

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

三、项目案列

相关文章:

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

系列文章 C#底层库–记录日志帮助类 本文链接&#xff1a;https://blog.csdn.net/youcheng_ge/article/details/124187709 C#底层库–数据库访问帮助类&#xff08;MySQL版&#xff09; 本文链接&#xff1a;https://blog.csdn.net/youcheng_ge/article/details/126886379 …...

如何在 Webpack 中开启图片压缩

工具对比 npmtrends.com/image-minim… 这四个压缩工具&#xff0c;从下载量来看&#xff0c;image-webpack-loader 较多&#xff0c;image-minimizer-webpack-plugin、imagemin-webpack-plugin 次之&#xff0c;imagemin-webpack 已经不再维护&#xff0c;因此不考虑此工具。 …...

Web-Filter

## 今日内容 1. Filter&#xff1a;过滤器 2. Listener&#xff1a;监听器 # Filter&#xff1a;过滤器 1. 概念&#xff1a; * 生活中的过滤器&#xff1a;净水器,空气净化器&#xff0c;土匪、 * web中的过滤器&#xff1a;当访问服务器的资源时…...

测试写文章自动保存

近日恰逢双十一,瞅了瞅自己干瘪的钱包,没忍心入手期待已久的 macPro,只好在虚拟机里玩一下 mac好了,等以后钱包傲气的时候再来个真实的。 安装环境: windows10 VMWare14.2 2018-7-28 小嘚瑟补充:唧唧歪歪大半年,一夜回到解放前,终于剁手整了个真机,可以折腾一下了 ——…...

云平台搭建实例

嗨嗨&#xff0c;每天一更是不是很奈斯&#xff1f;我也觉得&#xff0c;昨天晚上我学校的老师借一天一千的设备&#xff0c;只能用七天&#xff0c;所以我拿出来给你们没有设备和刚用设备的看看吧。操作&#xff1a;首先我们将云平台安装好后&#xff0c;插上网线&#xff0c;…...

【Airplay_BCT】关于Bonjour的概念解答

1.什么是Bonjour&#xff1f; Bonjour&#xff0c;也称为零配置网络&#xff0c;可以自动发现 IP 网络上的计算机、设备和服务。 Bonjour 使用行业标准 IP 协议&#xff0c;允许设备自动发现彼此&#xff0c;无需输入 IP 地址或配置 DNS 服务器。具体来说&#xff0c;Bonjour …...

C++深入浅出(九)—— 多态

文章目录1. 多态的概念2. 多态的定义及实现&#x1f351; 多态的构成条件&#x1f351; 虚函数&#x1f351; 虚函数的重写&#x1f351; 虚函数重写的两个例外&#x1f351; C11的override 和 final&#x1f351; 重载、覆盖(重写)、隐藏(重定义)的对比3. 抽象类&#x1f351;…...

shell学习4

目录 一、统计文本中的词频 二、压缩javascript 三、打印文件的或行中的第n个单词或列---awk 3.1 利用awk打印文件中每行中的第五个单词。 3.2 利用awk打印当前目录下的文件的权限和文件名 3.3 利用awk打印从M行到N行这个范围内的所有文本 3.4 利用awk 部分提取文件中的内…...

VR全景行业的应用价值如何呈现?

互联网高速发展的今天&#xff0c;多媒体所包含的种类也是越来越多&#xff0c;而一些较为传统的表现方式已经越来越无法满足大部分客户对展示方式的要求。而在传统的表现方式中&#xff0c;展现的方式无非是静态的平面图片以及动态的视频&#xff0c;但是他们都有一个缺点就是…...

ESP-IDF:TCP多线程并发服务器

核心代码&#xff1a; 核心思想就是主线程只处理socket监听功能&#xff0c;把数据处理部分分配到不同的线程中去处理。来了一个客户端连接&#xff0c;就分配新的线程去处理该客户端的数据请求。 代码&#xff1a; /多线程并发服务器/ #include <stdio.h> #include …...

Springboot扩展点之SmartInitializingSingleton

前言这篇文章会重点分析一下SmartInitializingSingleton扩展点的功能 特性、实现方式 、工作原理。SmartInitializingSingleton扩展点内只有一个扩展方法&#xff0c;且执行时机在Spring Bean的生命周期里比较靠后&#xff0c;很重要&#xff0c;但是也很简单。功能特性1、Smar…...

基于linux内核的驱动开发学习

1 驱动 定义&#xff1a;驱使硬件动起来的程序 种类&#xff1a;裸机驱动&#xff1a;需求分析--》查原理图--》查芯片手册--》code 系统驱动&#xff1a;需求分析--》查原理图--》查芯片手册--》设备树--》code --》安装到内核中…...

python3 django gunicorn

首先&#xff0c;Gunicorn是一个高效的Web服务器&#xff0c;地位相当于Java中的Tomcat。简单来说gunicorn封装了HTTP的底层实现&#xff0c;我们通过gunicorn启动服务&#xff0c;用户请求与服务相应都经过gunicorn传输。下载gunicorn的方法也比较简单&#xff0c;在django工程…...

专家分享 | 租赁型售楼处标准化示范区提效研究

2023年2月8日上午&#xff0c;优积科技邀请原金地集团北京公司 高级室内设计专业应锎经理为我司团队分享《租赁型售楼处标准化示范区提效》的专题。 此次专家分享课题加上大家踊跃讨论时间长达3小时&#xff0c;会上应总详细介绍了租赁型售楼处标准化示范区提效&#xff0c;需…...

linux之echo使用技巧

参考文章&#xff1a;linux基本功系列-echo命令实战一、echo 命令是什么&#xff1f;作用&#xff1a; echo命令能将指定文本显示在Linux命令行上&#xff0c;或者通过重定向符写入到指定的文件中。语 法&#xff1a;echo [-ne][字符串] / echo [–help][–version]补充说明&am…...

Keras实例教程(7)之构建模型的第三种方式

多年以前,在TensorFlow中搭建深度学习模型对于很多人来说其实仍然是比较困难的。相比之下,Keras作为独立于TensorFlow的一种深度学习框架则要简单很多。在TensorFlow与PyTorch的竞争中逐渐式微的情况下,TensorFlow团队终于宣布Keras将成为在tensorflow2.0中构建和训练模型的…...

【JUC并发编程】18 CopyOnWriteArrayList源码也就够看2分钟

文章目录1、CopyOnWriteArrayList概述2、原理 / 源码1&#xff09;构造函数2、add()3&#xff09;get()4&#xff09;remove()5&#xff09;iterator()1、CopyOnWriteArrayList概述 CopyOnWriteArrayList相当于线程安全的ArrayList&#xff0c;底层是一个可变数组。 特点如下…...

如何优雅的实现回调函数?

本篇文章又是一期优雅的代码编程介绍———回调函数。 传统的nodejs编程都是这样的 const fs require(fs) fs.readFile(test.txt,utf8, function(err, dataStr){if(err){} }) 嵌套层级如果多了就成回调地狱了。如果我们将这种风格的代码转换成这样呢&#xff1f; const fs …...

3GPP-NR Band20标准定义频点和信道(3GPP V17.7.0 (2022-12))

Reference test frequencies for NR operating band n20 Table 4.3.1.1.1.20-1: Test frequencies for NRoperating band n20 and SCS 15 kHz CBW [MHz]carrierBandwidth...

Excel表格的公式不想显示出来,可以这样操作

在制作Excel表格的时候&#xff0c;很多人做数据会用到函数公式&#xff0c;这些编辑都是默认可以看到的。 但有时候我们不想让他人看到自己的计算思路和所用公式&#xff0c;有没有办法可以隐藏公式&#xff0c;只显示数据呢&#xff1f;答案是肯定的&#xff0c;今天我们就来…...

c++ 面试题(1)-----深度优先搜索(DFS)实现

操作系统&#xff1a;ubuntu22.04 IDE:Visual Studio Code 编程语言&#xff1a;C11 题目描述 地上有一个 m 行 n 列的方格&#xff0c;从坐标 [0,0] 起始。一个机器人可以从某一格移动到上下左右四个格子&#xff0c;但不能进入行坐标和列坐标的数位之和大于 k 的格子。 例…...

Matlab | matlab常用命令总结

常用命令 一、 基础操作与环境二、 矩阵与数组操作(核心)三、 绘图与可视化四、 编程与控制流五、 符号计算 (Symbolic Math Toolbox)六、 文件与数据 I/O七、 常用函数类别重要提示这是一份 MATLAB 常用命令和功能的总结,涵盖了基础操作、矩阵运算、绘图、编程和文件处理等…...

Redis数据倾斜问题解决

Redis 数据倾斜问题解析与解决方案 什么是 Redis 数据倾斜 Redis 数据倾斜指的是在 Redis 集群中&#xff0c;部分节点存储的数据量或访问量远高于其他节点&#xff0c;导致这些节点负载过高&#xff0c;影响整体性能。 数据倾斜的主要表现 部分节点内存使用率远高于其他节…...

【Oracle】分区表

个人主页&#xff1a;Guiat 归属专栏&#xff1a;Oracle 文章目录 1. 分区表基础概述1.1 分区表的概念与优势1.2 分区类型概览1.3 分区表的工作原理 2. 范围分区 (RANGE Partitioning)2.1 基础范围分区2.1.1 按日期范围分区2.1.2 按数值范围分区 2.2 间隔分区 (INTERVAL Partit…...

【笔记】WSL 中 Rust 安装与测试完整记录

#工作记录 WSL 中 Rust 安装与测试完整记录 1. 运行环境 系统&#xff1a;Ubuntu 24.04 LTS (WSL2)架构&#xff1a;x86_64 (GNU/Linux)Rust 版本&#xff1a;rustc 1.87.0 (2025-05-09)Cargo 版本&#xff1a;cargo 1.87.0 (2025-05-06) 2. 安装 Rust 2.1 使用 Rust 官方安…...

Web中间件--tomcat学习

Web中间件–tomcat Java虚拟机详解 什么是JAVA虚拟机 Java虚拟机是一个抽象的计算机&#xff0c;它可以执行Java字节码。Java虚拟机是Java平台的一部分&#xff0c;Java平台由Java语言、Java API和Java虚拟机组成。Java虚拟机的主要作用是将Java字节码转换为机器代码&#x…...

怎么让Comfyui导出的图像不包含工作流信息,

为了数据安全&#xff0c;让Comfyui导出的图像不包含工作流信息&#xff0c;导出的图像就不会拖到comfyui中加载出来工作流。 ComfyUI的目录下node.py 直接移除 pnginfo&#xff08;推荐&#xff09;​​ 在 save_images 方法中&#xff0c;​​删除或注释掉所有与 metadata …...

Golang——7、包与接口详解

包与接口详解 1、Golang包详解1.1、Golang中包的定义和介绍1.2、Golang包管理工具go mod1.3、Golang中自定义包1.4、Golang中使用第三包1.5、init函数 2、接口详解2.1、接口的定义2.2、空接口2.3、类型断言2.4、结构体值接收者和指针接收者实现接口的区别2.5、一个结构体实现多…...

goreplay

1.github地址 https://github.com/buger/goreplay 2.简单介绍 GoReplay 是一个开源的网络监控工具&#xff0c;可以记录用户的实时流量并将其用于镜像、负载测试、监控和详细分析。 3.出现背景 随着应用程序的增长&#xff0c;测试它所需的工作量也会呈指数级增长。GoRepl…...

LUA+Reids实现库存秒杀预扣减 记录流水 以及自己的思考

目录 lua脚本 记录流水 记录流水的作用 流水什么时候删除 我们在做库存扣减的时候&#xff0c;显示基于Lua脚本和Redis实现的预扣减 这样可以在秒杀扣减的时候保证操作的原子性和高效性 lua脚本 // ... 已有代码 ...Overridepublic InventoryResponse decrease(Inventor…...