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

鸿蒙NEXT开发案例:保质期计算

【引言】

保质期计算应用是一个基于鸿蒙NEXT框架开发的数字和文本统计组件。用户可以输入商品的生产日期和保质期天数,应用会自动计算并展示相关信息,包括保质状态、剩余天数、生产日期和到期日期。

【环境准备】

• 操作系统:Windows 10

• 开发工具:DevEco Studio NEXT Beta1 Build Version: 5.0.3.806

• 目标设备:华为Mate60 Pro

• 开发语言:ArkTS

• 框架:ArkUI

• API版本:API 12

【实现思路】

1 组件定义

在应用中,我们定义了一个名为ExpiryDateCalculator的组件,其中包含了各种状态变量和方法。通过监听输入文本变化和选择日期变化,实现了自动更新相关信息的功能。

2 UI界面构建

通过构建UI界面,我们使用了列布局和行布局来展示各个信息模块。包括标题展示、统计结果展示、示例和清空按钮、选择生产日期等功能。通过设置字体颜色、背景色、阴影效果等,使界面更加美观和易读。

3 交互功能实现

在交互功能方面,我们实现了输入框焦点状态的切换、清空按钮功能、选择日期功能等。用户可以方便地输入信息并查看计算结果,提升了用户体验和操作便捷性。

【完整代码】

@Entry
@Component
struct ExpiryDateCalculator {// 定义文本颜色的状态变量,初始值为深灰色@State private textColor: string = "#2e2e2e";// 定义阴影边框颜色的状态变量,初始值为浅灰色@State private shadowColor: string = "#d5d5d5";// 定义基础内边距的状态变量,初始值为30@State private basePadding: number = 30;// 定义是否已过期的状态变量,初始值为false@State private isExpired: boolean = false;// 定义生产日期的状态变量,初始值为空字符串@State private productionDate: string = "";// 定义到期日期的状态变量,初始值为空字符串@State private expiryDate: string = "";// 定义剩余有效天数的状态变量,初始值为0@State private remainingDays: number = 0;// 定义主题颜色,初始值为橙色@State private themeColor: string | Color = Color.Orange;// 输入框是否获得了焦点的状态变量,初始值为false@State isInputFocused: boolean = false;// 定义监听输入文本变化的状态变量,初始值为"9"@State @Watch('inputChanged') private inputText: string = "9";// 定义选择的日期状态变量,初始值为当前日期@State @Watch('inputChanged') private selectedDate: Date = new Date()// 组件即将出现时的操作aboutToAppear(): void {// 调用输入变化处理方法this.inputChanged()}// 获取年月日的方法getYearMonthDay(date: Date) {// 获取年份并格式化为4位数const year: string = date.getFullYear().toString().padStart(4, '0');// 获取月份并格式化为2位数const month: string = (date.getMonth() + 1).toString().padStart(2, '0');// 获取日期并格式化为2位数const day: string = date.getDate().toString().padStart(2, '0');// 返回格式化后的日期字符串return `${year}年${month}月${day}日`;}// 输入变化时的处理方法inputChanged() {// 打印当前选择的日期console.info(`selectedDate:${this.selectedDate}`);// 更新生产日期为选择的日期this.productionDate = this.getYearMonthDay(this.selectedDate);// 创建到期日期对象let expiryDate: Date = new Date(this.selectedDate);// 根据输入的天数更新到期日期expiryDate.setDate(expiryDate.getDate() + Number(this.inputText));// 更新到期日期为格式化后的字符串this.expiryDate = this.getYearMonthDay(expiryDate);// 判断是否已过期this.isExpired = expiryDate.getTime() < new Date().getTime();// 计算时间差const timeDifference = expiryDate.getTime() - new Date().getTime();// 计算剩余天数this.remainingDays = Math.ceil(timeDifference / (1000 * 60 * 60 * 24));} // 构建UI界面的方法build() {// 创建一个列布局容器Column() { // 添加标题Text('保质期计算').fontColor(this.textColor)// 设置字体颜色.fontSize(18)// 设置字体大小.width('100%')// 设置宽度为100%.height(50)// 设置高度为50.textAlign(TextAlign.Center)// 设置文本对齐方式为居中.backgroundColor(Color.White)// 设置背景颜色为白色.shadow({// 设置阴影效果radius: 2, // 阴影半径color: this.shadowColor, // 阴影颜色offsetX: 0, // X轴偏移量offsetY: 5 // Y轴偏移量});// 创建可滚动的容器Scroll() {// 在可滚动容器内部创建列布局Column() {// 添加统计结果展示Column() {// 是否过期Row() {Text() {Span(`保质状态:`) // 显示文本“保质状态:”Span(`${this.isExpired ? '已过期' : '未过期'}`)// 根据状态显示“已过期”或“未过期”.fontColor(this.isExpired ? "#e74c3c" : "#3ace7d") // 根据状态设置字体颜色}.fontColor(this.textColor) // 设置字体颜色.fontSize(16) // 设置字体大小.layoutWeight(1); // 设置布局权重}.constraintSize({ minHeight: 45 }) // 设置最小高度.justifyContent(FlexAlign.SpaceBetween) // 设置内容对齐方式.width('100%'); // 设置宽度为100%Divider(); // 添加分隔线// 剩余天数Row() {Text() {Span(`剩余天数:`) // 显示文本“剩余天数:”Span(`${this.remainingDays < 0 ? 0 : this.remainingDays} `).fontColor(Color.Orange) // 显示剩余天数,负数显示为0Span('天') // 显示单位“天”}.fontColor(this.textColor) // 设置字体颜色.fontSize(16) // 设置字体大小.layoutWeight(1); // 设置布局权重}.constraintSize({ minHeight: 45 }) // 设置最小高度.justifyContent(FlexAlign.SpaceBetween) // 设置内容对齐方式.width('100%'); // 设置宽度为100%Divider(); // 添加分隔线// 生产日期Row() {Text() {Span(`生产日期:`) // 显示文本“生产日期:”Span(`${this.productionDate} `) // 显示生产日期}.fontColor(this.textColor) // 设置字体颜色.fontSize(16) // 设置字体大小.layoutWeight(1); // 设置布局权重}.constraintSize({ minHeight: 45 }) // 设置最小高度.justifyContent(FlexAlign.SpaceBetween) // 设置内容对齐方式.width('100%'); // 设置宽度为100%Divider(); // 添加分隔线// 到期日期Row() {Text() {Span(`到期日期:`) // 显示文本“到期日期:”Span(`${this.expiryDate} `) // 显示到期日期}.fontColor(this.textColor) // 设置字体颜色.fontSize(16) // 设置字体大小.layoutWeight(1); // 设置布局权重}.constraintSize({ minHeight: 45 }) // 设置最小高度.justifyContent(FlexAlign.SpaceBetween) // 设置内容对齐方式.width('100%'); // 设置宽度为100%}.alignItems(HorizontalAlign.Start) // 设置子项对齐方式.width('650lpx') // 设置宽度为650像素.padding(`${this.basePadding}lpx`) // 设置内边距.margin({ top: `${this.basePadding}lpx` }) // 设置上边距.borderRadius(10) // 设置圆角.backgroundColor(Color.White) // 设置背景颜色为白色.shadow({// 设置阴影效果radius: 10, // 阴影半径color: this.shadowColor, // 阴影颜色offsetX: 0, // X轴偏移量offsetY: 0 // Y轴偏移量});// 添加示例和清空按钮Column() {Row() {// 添加文本输入区域Row() {TextInput({ text: $$this.inputText, placeholder: `请输入保质期天数` })// 创建文本输入框.type(InputType.Number)// 设置输入类型为数字.layoutWeight(1)// 设置布局权重.fontSize(16)// 设置字体大小.textAlign(TextAlign.JUSTIFY)// 设置文本对齐方式.backgroundColor(Color.Transparent)// 设置背景色为透明.padding(0)// 设置内边距为0.height('100%')// 设置高度为100%.placeholderColor(this.isInputFocused ? this.themeColor : Color.Gray)// 设置占位符颜色.fontColor(this.isInputFocused ? this.themeColor : this.textColor)// 设置字体颜色.caretColor(this.themeColor)// 设置光标颜色.borderRadius(0)// 设置圆角为0.onBlur(() => this.isInputFocused = false)// 失去焦点时更新状态.onFocus(() => this.isInputFocused = true)// 获得焦点时更新状态.width('100%'); // 设置宽度为100%}.padding(`${this.basePadding / 2}lpx`) // 设置内边距.backgroundColor("#f2f1fd") // 设置背景色.layoutWeight(1) // 设置布局权重.borderWidth(1) // 设置边框宽度.borderRadius(10) // 设置圆角为10.borderColor(this.isInputFocused ? this.themeColor : Color.Gray) // 根据焦点状态设置边框颜色.margin({ right: `${this.basePadding / 2}lpx` }); // 设置右边距Blank(); // 添加空白占位符// 清空按钮Text('清空')// 显示文本“清空”.fontColor("#e48742")// 设置字体颜色.fontSize(16)// 设置字体大小.padding(`${this.basePadding / 2}lpx`)// 设置内边距.clickEffect({ level: ClickEffectLevel.LIGHT, scale: 0.8 })// 点击效果.backgroundColor("#ffefe6")// 设置背景色.borderRadius(5)// 设置圆角为5.onClick(() => { // 点击事件处理this.inputText = ""; // 清空输入文本});}.height(45) // 设置高度为45.alignItems(VerticalAlign.Center) // 设置内容垂直居中.justifyContent(FlexAlign.SpaceBetween) // 设置内容对齐方式.width('100%'); // 设置宽度为100%Divider(); // 添加分隔线// 选择生产日期Row() {Text('请选择生产日期')// 显示文本“请选择生产日期”.fontColor("#5871ce")// 设置字体颜色.fontSize(16)// 设置字体大小.padding(`${this.basePadding / 2}lpx`)// 设置内边距.backgroundColor("#f2f1fd")// 设置背景色.borderRadius(5)// 设置圆角为5.clickEffect({ level: ClickEffectLevel.LIGHT, scale: 0.8 }) // 点击效果Blank(); // 添加空白占位符CalendarPicker({ hintRadius: 10, selected: this.selectedDate })// 创建日历选择器.edgeAlign(CalendarAlign.END)// 设置对齐方式.textStyle({ color: "#ff182431", font: { size: 20, weight: FontWeight.Normal } })// 设置文本样式.margin(10)// 设置外边距.onChange((date: Date) => { // 日期变化事件处理this.selectedDate = date // 更新选择的日期})}.height(45) // 设置高度为45.justifyContent(FlexAlign.SpaceBetween) // 设置内容对齐方式.width('100%'); // 设置宽度为100%}.alignItems(HorizontalAlign.Start) // 设置内容水平对齐方式.width('650lpx') // 设置宽度为650像素.padding(`${this.basePadding}lpx`) // 设置内边距.margin({ top: `${this.basePadding}lpx` }) // 设置上边距.borderRadius(10) // 设置圆角为10.backgroundColor(Color.White) // 设置背景颜色为白色.shadow({// 设置阴影效果radius: 10, // 阴影半径color: this.shadowColor, // 阴影颜色offsetX: 0, // X轴偏移量offsetY: 0 // Y轴偏移量});// 添加工具介绍Column() {Text('工具介绍')// 显示文本“工具介绍”.fontSize(18)// 设置字体大小为18.fontWeight(600)// 设置字体粗细.fontColor(this.textColor); // 设置字体颜色为状态变量中定义的文本颜色Text('输入需要计算保质期商品的生产日期和保质期天数,工具将为您自动计算商品的保质期状态、剩余天数、到期日。')// 显示工具介绍文本.textAlign(TextAlign.JUSTIFY)// 设置文本对齐方式为两端对齐.fontSize(16)// 设置字体大小为16.fontColor(this.textColor)// 设置字体颜色为状态变量中定义的文本颜色.margin({ top: `${this.basePadding / 2}lpx` }); // 设置上边距为基础内边距的一半}.alignItems(HorizontalAlign.Start) // 设置内容水平对齐方式.width('650lpx') // 设置宽度为650像素.padding(`${this.basePadding}lpx`) // 设置内边距.margin({ top: `${this.basePadding}lpx` }) // 设置上边距.borderRadius(10) // 设置圆角为10.backgroundColor(Color.White) // 设置背景颜色为白色.shadow({// 设置阴影效果radius: 10, // 阴影半径color: this.shadowColor, // 阴影颜色offsetX: 0, // X轴偏移量offsetY: 0 // Y轴偏移量});}}.scrollBar(BarState.Off) // 关闭滚动条.clip(false); // 不裁剪内容}.height('100%') // 设置高度为100%.width('100%') // 设置宽度为100%.backgroundColor("#f4f8fb"); // 设置背景颜色为指定颜色}
}

相关文章:

鸿蒙NEXT开发案例:保质期计算

【引言】 保质期计算应用是一个基于鸿蒙NEXT框架开发的数字和文本统计组件。用户可以输入商品的生产日期和保质期天数&#xff0c;应用会自动计算并展示相关信息&#xff0c;包括保质状态、剩余天数、生产日期和到期日期。 【环境准备】 • 操作系统&#xff1a;Windows 10 …...

LLM并发加速部署方案(llama.cpp、vllm、lightLLM、fastLLM)

大模型并发加速部署 解析当前应用较广的几种并发加速部署方案&#xff01; llama.cpp、vllm、lightllm、fastllm四种框架的对比&#xff1a; llama.cpp&#xff1a;基于C&#xff0c;①请求槽&#xff0c;②动态批处理&#xff0c;③CPU/GPU混合推理vllm&#xff1a;基于Pyth…...

用最小的代价解决mybatis-plus关于批量保存的性能问题

1.问题说明 问题背景说明&#xff0c;在使用达梦数据库时&#xff0c;mybatis-plus的serviceImpl.saveBatch()方法或者updateBatchById()方法的时候&#xff0c;随着数据量、属性字段的增加&#xff0c;效率越发明显的慢。 serviceImpl.saveBatch(); serviceImpl.updateBatch…...

蓝桥杯历届真题 --#递推 翻硬币(C++)

文章目录 思路完整代码结语 原题链接 思路 通过观察测试用例&#xff0c;我们猜测&#xff0c;从左到右依次对比每一个位置上的状态&#xff0c;如果不一样我们就翻一次&#xff0c;最终得到的答案即为正解。 完整代码 //这里是引入了一些常用的头文件,和一些常规操作 //第一…...

BurpSuite-8(FakeIP与爬虫审计)

声明&#xff1a;学习视频来自b站up主 泷羽sec&#xff0c;如涉及侵权马上删除文章 感谢泷羽sec 团队的教学 视频地址&#xff1a;IP伪造和爬虫审计_哔哩哔哩_bilibili 一、FakeIP 1.配置环境 BurpSuite是java环境下编写的&#xff0c;而今天的插件是python编写的&#xff0c…...

JAVA8、Steam、list运用合集

Steam运用 Java Stream API为开发人员提供了一种函数式和声明式的方式来表达复杂的数据转换和操作,使代码更加简洁和富有表现力。 1、使用原始流以获得更好的性能【示例:求和】 使用 int、long 和 double 等基本类型时,请使用IntStream、LongStream 和 DoubleStream 等基本流…...

深入详解人工智能机器学习:强化学习

目录 强化学习概述 强化学习的基本概念 定义 关键组件 强化学习过程 常用算法 应用示例 示例代码 代码解释 应用场景 强化学习核心概念和底层原理 核心概念 底层原理 总结 强化学习概述 强化学习&#xff08;Reinforcement Learning, RL&#xff09;是机器学习中的…...

docker的简单使用

文章目录 docker简介docker架构镜像和容器镜像有关的常用命令容器相关常用命令 docker简介 Docker是一个开源的应用容器引擎&#xff0c;基于Go语言并遵从Apache2.0协议开源。 Docker可以让开方子打包他们的应用以及依赖包到一个轻量级、可移植的容器中&#xff0c;然后发布到…...

启动的docker容器里默认运行dockerd

问题 已在Dockerfile里yum install docker 但docker run 启动容器后, docker ps等命令无法执行 ps -aux 没有dockerd 进程 临时解决 另开一个终端 docker exec -it 容器名 bash 手动启 dockerd 默认启动 分析 现在启动容器的默认命令是 /sbin/init sbin/init 是根文件系统…...

Python爬虫技术的最新发展

在互联网的海洋中&#xff0c;数据就像是一颗颗珍珠&#xff0c;而爬虫技术就是我们手中的潜水艇。2024年&#xff0c;爬虫技术有了哪些新花样&#xff1f;让我们一起潜入这个话题&#xff0c;看看最新的发展和趋势。 1. 异步爬虫&#xff1a;速度与激情 随着现代Web应用的复…...

什么是厄尔米特(Hermitian)矩阵?

厄米矩阵&#xff08;Hermitian Matrix&#xff09;定义 在数学和物理中&#xff0c;厄米矩阵是满足以下条件的复方阵&#xff1a; A A † \mathbf{A}\mathbf{A}^\dagger AA† 其中&#xff0c; A † \mathbf{A}^\dagger A†表示矩阵 A \mathbf{A} A的共轭转置&#xff0c;即…...

从零开始:Linux 环境下的 C/C++ 编译教程

个人主页&#xff1a;chian-ocean 文章专栏 前言&#xff1a; GCC&#xff08;GNU Compiler Collection&#xff09;是一个功能强大的编译器集合&#xff0c;支持多种语言&#xff0c;包括 C 和 C。其中 gcc 用于 C 语言编译&#xff0c;g 专用于 C 编译。 Linux GCC or G的安…...

Excel + Notepad + CMD 命令行批量修改文件名

注意&#xff1a;该方式为直接修改原文件的文件名&#xff0c;不会生成新文件 新建Excel文件 A列&#xff1a;固定为 renB列&#xff1a;原文件名称C列&#xff1a;修改后保存的名称B列、C列&#xff0c;需要带文件后缀&#xff0c;为txt文件就是.txt结尾&#xff0c;为png图片…...

1.1 android:监听并处理返回事件

在Android开发过程中&#xff0c;默认执行返回事件是结束当前界面&#xff0c;返回上一个界面&#xff0c;没有任何提示&#xff0c;但用户可能会误操作&#xff0c;这时出现一个提示界面对用户较为友好&#xff0c;接下来&#xff0c;让我们探究返回事件的处理。 一、onBackP…...

解决Ubuntu关机主板不断电的问题(其它使用GRUB的Linux发行版大概率也可用)

前言&#xff1a; 在某些主板上&#xff0c;Ubuntu20.04系统关机并不会连带主板一起断电。 猜测可能是主板太老了。无法识别较新的系统的关机信号&#xff0c;导致无法断电。连带着一些电脑周边设备也不会断电导致状态无法重置&#xff0c;后续会出现一些问题。 目标&#xf…...

【CTF-Web】文件上传漏洞学习笔记(ctfshow题目)

文件上传 文章目录 文件上传 What is Upload-File&#xff1f;Upload-File In CTF Web151 考点&#xff1a;前端校验解题&#xff1a; Web152 考点&#xff1a;后端校验要严密解题&#xff1a; Web153 考点&#xff1a;后端校验 配置文件介绍解题&#xff1a; Web154 考点&am…...

无法正常启动此程序,因为计算机丢失wlanapi.dll

wlanapi.dll丢失怎么办&#xff1f;有没有什么靠谱的修复wlanapi.dll方法_无法启动此程序,因为计算机中丢失wlanapi.dll-CSDN博客 wlanapi.dll是 Windows 操作系统中的一个动态链接库文件&#xff0c;主要与 Windows 无线 LAN (WLAN) API 相关。该DLL提供了许多必要的函数&…...

C++ webrtc开发(非原生开发,linux上使用libdatachannel库)

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、libdatachannel库的下载和build二、开始使用 1.2.引入库3.开始使用 总结 前言 使用c开发webrtc在互联网上留下的资料甚少&#xff0c;经过我一段时间的探…...

vue-router路由传参的两种方式(params 和 query )

一、vue-router路由传参问题 1、概念&#xff1a; A、vue 路由传参的使用场景一般应用在父路由跳转到子路由时&#xff0c;携带参数跳转。 B、传参方式可划分为 params 传参和 query 传参&#xff1b; C、而 params 传参又可分为在 url 中显示参数和不显示参数两种方式&#x…...

VBA高级应用30例应用在Excel中的ListObject对象:向表中添加注释

《VBA高级应用30例》&#xff08;版权10178985&#xff09;&#xff0c;是我推出的第十套教程&#xff0c;教程是专门针对高级学员在学习VBA过程中提高路途上的案例展开&#xff0c;这套教程案例与理论结合&#xff0c;紧贴“实战”&#xff0c;并做“战术总结”&#xff0c;以…...

github操作学习笔记(杂乱版)

git开源的分布式版本控制系统&#xff1a; 每次修改文件提交后&#xff0c;都会自动创建一个项目版本 查看git版本看有没有安装成功&#xff1a;git --version 把默认编辑器设置成vim&#xff1a;git config --global core.editor "vim" 1、设置昵称和邮箱&#xff…...

TaskBuilder SQL执行工具

为了方便开发者连接当前任擎服务器上配置的各个数据源对应的数据库进行相关操作&#xff0c;TaskBuilder提供了一个SQL执行工具&#xff0c;点击系统侧边栏里的执行SQL图标 &#xff0c;即可打开该工具&#xff0c;界面如下图所示&#xff1a; 该工具从上至下分为三个区域&a…...

快速掌握Quartz.Net计划任务调度框架,轻松实现定时任务

前言 Quartz.Net是一个开源的作业调度框架&#xff0c;可以用于管理计划任务和定期执行。Quartz.Net提供了丰富的作业计划选项&#xff0c;例如精确或模糊时间表达式、日期和时间限制等。Quartz.Net采用分布式架构&#xff0c;允许在多个计算机上运行任务。 Quartz.Net架构设…...

Linux ufw命令丨Linux网络防火墙ufw命令详解

ufw&#xff08;Uncomplicated Firewall&#xff09;是Ubuntu系统上默认的防火墙组件&#xff0c;它为轻量化配置iptables而开发&#xff0c;提供了一个非常友好的界面用于创建基于IPv4和IPv6的防火墙规则 ufw在Ubuntu 8.04 LTS后的所有发行版中默认可用&#xff0c;它通过命令…...

shell编程(完结)

shell编程&#xff08;完结&#xff09; 声明&#xff01; 学习视频来自B站up主 ​泷羽sec​​ 有兴趣的师傅可以关注一下&#xff0c;如涉及侵权马上删除文章 笔记只是方便各位师傅的学习和探讨&#xff0c;文章所提到的网站以及内容&#xff0c;只做学习交流&#xff0c;其…...

深入了解Text2SQL开源项目(Chat2DB、SQL Chat 、Wren AI 、Vanna)

深入了解Text2SQL开源项目&#xff08;Chat2DB、SQL Chat 、Wren AI 、Vanna&#xff09; 前言1.Chat2DB2.SQL Chat3.Wren AI4.Vanna 前言 在数据驱动决策的时代&#xff0c;将自然语言查询转化为结构化查询语言&#xff08;SQL&#xff09;的能力变得日益重要。无论是小型创业…...

【Linux】报错:cannot create directory ‘test’: Read-only file system

1 报错 ❤️在使用mkdir test命令创建文件夹的时候,报错如下: mkdir:cannot create directory ‘test’:Read-only file system 2 解决方法 mount -o remount,rw / 🦋上述命令在Linux系统中用于重新挂载(root)文件系统,并将其从只读模式切换到读写模式。 ■ 下面是对…...

python mat是什么文件

.mat就是matlab的文件格式&#xff0c;一般用于matlab和python间的数据传输&#xff0c;python中numpy和scipy提供了一些函数&#xff0c;可以很好的对.mat文件的数据进行读写和处理。 在python中可以使用scipy.io中的函数loadmat()读取mat文件&#xff0c;函数savemat保存文…...

Redis: 一个高效的内存数据存储解决方案

Redis: 一个高效的内存数据存储解决方案 介绍 Redis&#xff08;Remote Dictionary Server&#xff09;是一种开源的高性能键值存储系统。它常被用作缓存、消息队列、会话存储、实时数据分析等多种场景。与传统的关系型数据库不同&#xff0c;Redis 是基于内存的数据存储&…...

AR眼镜_消费级工业AR智能眼镜主板硬件解决方案

AR眼镜的研发是一项复杂的软硬件集成工程&#xff0c;它需要在摄影、音频、交互和连接等多个方面提供卓越的基础体验&#xff0c;因此产品的每个细节都显得尤为重要。 在设计AR眼镜时&#xff0c;重量、体积和散热性能都是必须认真考量的关键因素。在芯片平台的选择上&#xff…...

C# 异常处理

C# 异常处理 异常处理是编程中不可或缺的一部分,它允许程序在遇到错误或意外情况时优雅地处理这些问题,而不是直接崩溃。C# 提供了一套强大的异常处理机制,包括 try-catch 块、finally 块和 throw 语句。本文将深入探讨 C# 中的异常处理,包括如何捕获和处理异常,以及如何…...

图解SSH原理

1. 初见SSH SSH是一种协议标准&#xff0c;其目的是实现安全远程登录以及其它安全网络服务。 SSH仅仅是一协议标准&#xff0c;其具体的实现有很多&#xff0c;既有开源实现的OpenSSH&#xff0c;也有商业实现方案。使用范围最广泛的当然是开源实现OpenSSH。 2. SSH工作原理 …...

如何快速批量把 PDF 转为 JPG 或其它常见图像格式?

在某些特定场景下&#xff0c;将 PDF 转换为 JPG 图片格式却具有不可忽视的优势。例如&#xff0c;当我们需要在不支持 PDF 查看的设备或软件中展示文档内容时&#xff0c;JPG 图片能够轻松被识别和打开&#xff1b;此外&#xff0c;对于一些网络分享或社交媒体发布的需求&…...

在CentOS中安装和卸载mysql

在CentOS7中安装和卸载mysql 卸载mysql1、查看是否安装过mysql2、查看mysql服务状态3、关闭mysql服务4、卸载mysql相关的rpm程序5、删除mysql相关的文件6、删除mysql的配置文件my.cnf 安装mysql1、下载mysql相关的rpm程序2、检查/tmp临时目录权限3、安装mysql前的依赖检查3、安…...

第十二章:异常(2)

六、自定义异常类 1. 定义一个类继承 异常类 (1) 定义异常类如果为运行时异常&#xff0c;则需要继承 RuntimeException class CheckedPasswordException extends RuntimeException{} (2) 定义异常类如果为非运行时异常&#xff0c;则需要继承 Exception class CheckedPass…...

DAY5 C++运算符重载

1.类实现> 、<、!、||、&#xff01;和后自增、前自减、后自减运算符的重载 代码&#xff1a; #include <iostream>using namespace std; class Complex {int rel;int vir; public:Complex(){};Complex(int rel,int vir):rel(rel),vir(vir){cout << "…...

Qt之点击鼠标右键创建菜单栏使用(六)

Qt开发 系列文章 - menu&#xff08;六&#xff09; 目录 前言 一、示例演示 二、菜单栏 1.MenuBar 2.Menu 总结 前言 QMainWindow是一个为用户提供主窗口程序的类&#xff0c;包含一个菜单栏&#xff08;menubar&#xff09;、多个工具栏(toolbars)、一个状态栏(status…...

Ant Design Pro实战--day01

下载nvm https://nvm.uihtm.com/nvm-1.1.12-setup.zip 下载node.js 16.16.0 //非此版本会报错 nvm install 16.16.0 安装Ant Design pro //安装脚手架 npm i ant-design/pro-cli -g //下载项目 pro create myapp //选择版本 simple 安装依赖 npm install 启动umi yarn add u…...

ejb组件(rmi) webservice平台(xml)

springboot bean 在 Spring Boot 中&#xff0c;Bean 是 Spring 框架的核心概念之一&#xff0c;表示由 Spring 容器管理的对象。通过 Bean 或其他注解&#xff08;如 Component、Service、Repository 等&#xff09;来定义和管理这些对象。以下是关于 Spring Boot 中 Bean 的…...

[高考] 学习数学的难点

最近想看一些机器学习的书&#xff0c;发现很多概念&#xff0c;很多符号&#xff0c;很多地方是&#xff0c;不知道具体的意思&#xff0c;不懂其中的内涵&#xff0c;所以需要再重新查阅很多的资料&#xff0c;去理解作者每句话是什么意思。 总结一下难点。以詹姆斯-斯图尔特…...

西门子200 smart PLC助力水处理企业自动化改造

摘要 西门子的200SMART PLC&#xff0c;以其强大的功能和灵活的应用性&#xff0c;正成为环保行业中不可或缺的一环。今天&#xff0c;我们就来看看这个小小的PLC是如何在处理环保问题中大显身手的。 不得不说&#xff0c;环保行业的痛点可不少。 比如污水处理&#xff0c;传…...

redis 怎么样查看list

在 Redis 中&#xff0c;可以通过以下方法查看列表的内容或属性&#xff1a; 1. 查看列表中的所有元素 使用 LRANGE 命令&#xff1a; LRANGE key start endkey 是列表的名称。start 是起始索引&#xff0c;0 表示第一个元素。end 是结束索引&#xff0c;-1 表示最后一个元素…...

QT数据库(二):QSqlQueryModel实现数据查询

QSqlQueryModel 可以设置任意的 SELECT 语句来从数据库中查询数据&#xff0c;可以查询一个数据表部分字段的数据&#xff0c;也可以是多个数据表组合的数据。该模型的数据是只读的&#xff0c;即使在界面上修改了QSqlQueryModel 模型的数据&#xff0c;也不能将所做的修改提交…...

【后端面试总结】HTTPS工作原理详解

引言 在现代网络通信中&#xff0c;数据的安全性至关重要。HTTP&#xff08;Hypertext Transfer Protocol&#xff09;作为互联网上传输数据的协议&#xff0c;虽然应用广泛&#xff0c;但其数据以明文形式传输&#xff0c;存在被窃取和篡改的风险。为此&#xff0c;HTTPS&…...

Kibana 部署

Kibana 是一个开源的数据可视化和探索工具&#xff0c;主要用于 Elasticsearch 数据的分析和展示。本文将详细介绍如何在 Linux 系统上部署 Kibana&#xff0c;并启用 SSL 加密以确保安全通信。 英文文档&#xff1a;Kibana Guide | Elastic 中文文档&#xff1a;Kibana 用户…...

PostgreSQL 入门

下载与安装 部分国产数据库采用PostgreSQL作为基础进行研发&#xff0c;因此先尝试了解一下原始数据库情况。 PostgreSQL 简称 PG 官网&#xff1a;https://www.postgresql.org/ PostgreSQL “世界上最先进的开源关系型数据库” 这是官网上的口号。 PostgreSQL: The World…...

简单的多网卡选择指定网卡ip注册

简单的多网卡选择指定网卡ip注册 我们公司服务器上面有多个网卡&#xff0c;多网卡则本地ip有多个ip,我们启动服务的时候需要选定他特定的ip&#xff0c;我们服务需要特定的ip进行注册&#xff0c;才能进行正常的通讯功能&#xff0c;我们需要使用如下配置进行特定ip选择&…...

【论文阅读笔记】One Diffusion to Generate Them All

One Diffusion to Generate Them All 介绍理解 引言二、相关工作三、方法预备知识训练推理实现细节训练细节 数据集构建实验分结论附录 介绍 Paper&#xff1a;https://arxiv.org/abs/2411.16318 Code&#xff1a;https://github.com/lehduong/onediffusion Authors&#xff1…...

基于Spring Boot的电影院订票信息管理系统

目录 前言 一、技术栈 二、系统功能介绍 三、核心代码 1、登录模块 2、文件上传模块 3、代码封装 前言 当今社会已经步入了科学技术进步和经济社会快速发展的新时期&#xff0c;国际信息和学术交流也不断加强&#xff0c;计算机技术对经济社会发展和人民生活改善的影响也…...

Easy-Mock前端+后端全解以及详细使用

前文 常见的mock方式 将模拟数据直接写在代码里利用 JavaScript 拦截请求利用 Charles、 Fiddler 等代理工具拦截请求 把模拟的数据写代码里&#xff0c;那是不是每次修改返回数据就要重新部署服务&#xff0c;那有没有不用部署也能改返回参数的东西呢&#xff1f;有&#x…...