C# 时间计算(二)

news2024/11/16 11:55:19

目录

五、时间比较

六、时间数据转换

七、时间间隔计算

八、获取网络时间

九、时间戳

十、时区时间

结束


概述
在 C# 中,DateTime 用于处理日期和时间的内置类,其值范围为 00:00:00 (午夜) , 0001年1月1日,安诺·多米尼 (公历) 年12月31日晚上11:59:59 (公历 ) 。

时间值以 100 纳秒为单位进行测量,称为刻度。 特定日期是自 A.0001 年 1 月 1 日午夜 12:00 以来的时钟周期数, (日历中的 GregorianCalendar C.E.) 。 该数字不包括按闰秒添加的刻度。 例如,刻度值为 31241376000000000L 表示星期五,0100 年 1 月 1 日 12:00:00 午夜。 DateTime 值始终在显式或默认日历的上下文中表示。

C# 时间计算(一)-CSDN博客

五、时间比较

要想两个时间比较谁早谁晚,有多种方法,可以使用 TimeSpan,DateTime,DateTimeOffset 等

例1:

直接用大于号,小于号运算符判断

代码:

namespace Test2
{
    internal class Program
    {
        static void Main(string[] args)
        {
            DateTime dt1 = DateTime.Parse("2023-11-24 19:30:23");
            DateTime dt2 = DateTime.Parse("2023-11-24 23:10:51");

            if(dt1 > dt2)
            {
                Console.WriteLine("dt1 时间大于 dt2");
            }
            else if(dt2 > dt1)
            {
                Console.WriteLine("dt2 时间大于 dt1");
            }
            else
            {
                Console.WriteLine("两个时间相同");
            }

            Console.ReadKey();
        }
    }
}

效果:

例2:

使用 CompareTo 来判断两个时间,谁大谁小

代码:

namespace Test2
{
    internal class Program
    {
        static void Main(string[] args)
        {
            DateTime dt1 = DateTime.Parse("2023-11-24 19:30:23");
            DateTime dt2 = DateTime.Parse("2023-11-24 23:10:51");

            // 1 表示第一个时间晚于第二个时间,(时间1 大于 时间2)
            // 0 表示两个时间相等,
            //-1 表示第一个时间早于第二个时间(时间1 小于 时间2)
            int result = dt1.CompareTo(dt2);
            Console.WriteLine("结果:{0}", result);

            Console.ReadKey();
        }
    }
}

运行:

例3:

使用 DateTime.Compare 效果同例2效果一致

代码:

namespace Test2
{
    internal class Program
    {
        static void Main(string[] args)
        {
            DateTime dt1 = DateTime.Parse("2023-11-24 19:30:23");
            DateTime dt2 = DateTime.Parse("2023-11-24 23:10:51");

            // 1 表示第一个时间晚于第二个时间,(时间1 大于 时间2)
            // 0 表示两个时间相等,
            //-1 表示第一个时间早于第二个时间(时间1 小于 时间2)
            int result = DateTime.Compare(dt1, dt2);
            Console.WriteLine("结果:{0}", result);
            Console.ReadKey();
        }
    }
}

六、时间数据转换

时间数据转换是指将分钟转换为秒,或者将秒转换小时等等。

现在有个问题,我们去电影院看电影,如果电影的时长是 280分钟,那么它是多少小时,多少分钟呢?

如果我们手动去计算,一般是用 280 / 60 得出小时数,然后将 280 % 60 得出分钟数量,但是,大部分人口算  280 / 60 也不太容易,用乘法去算反而更容易点,4 * 60 = 240,280 - 240 = 40,应该是 4小时40分吧,那么下面我就用代码的方式来解决这个问题吧。

例1:

将分钟转换为 小时、分钟

代码:

namespace Test2
{
    internal class Program
    {
        static void Main(string[] args)
        {
            TimeSpan timeSpan = TimeSpan.FromMinutes(280);
            Console.WriteLine(timeSpan);
            Console.ReadKey();
        }
    }
}

效果:

例2:

我在 C# 中写了一个定时器,定时器要求我必须用毫秒计算,那么 1 小时的毫秒数是多少呢

代码:

Timer = new System.Timers.Timer();
Timer.Interval = TimeSpan.FromHours(1).TotalMilliseconds;
Timer.Elapsed += Timer_Elapsed;
Timer.AutoReset = true;

上面的代码并不完整,重点在 TimeSpan.FromHours(1).TotalMilliseconds 这句

代码:

namespace Test2
{
    internal class Program
    {
        static void Main(string[] args)
        {
            double mills = TimeSpan.FromHours(1).TotalMilliseconds;
            Console.WriteLine("毫秒数:{0}", mills);
            Console.ReadKey();
        }
    }
}

效果:

例3:

12分钟是多少毫秒?

代码:

namespace Test2
{
    internal class Program
    {
        static void Main(string[] args)
        {
            double mills = TimeSpan.FromMinutes(12).TotalMilliseconds;
            Console.WriteLine("毫秒数:{0}", mills);
            Console.ReadKey();
        }
    }
}

效果:

七、时间间隔计算

可以使用 TimeSpan 来判断两个时间之间间隔了多少秒

代码:

namespace Test2
{
    internal class Program
    {
        static void Main(string[] args)
        {
            DateTime dt1 = DateTime.Parse("2023-11-24 19:30:23");
            DateTime dt2 = DateTime.Parse("2023-11-24 23:10:51");
            TimeSpan timeSpan = dt2 - dt1;
            int seconds = (int)timeSpan.TotalSeconds;
            Console.WriteLine("两个时间之间间隔秒数:{0}", seconds);
            Console.ReadKey();
        }
    }
}

效果:

也可以对间隔时间的计算做一个封装,新建一个类 TimeInterval

using System;

/// <summary>
/// 时间差计算
/// </summary>
public class TimeInterval
{
    /// <summary>
    /// 计算两个时间间隔的时长
    /// </summary>
    /// <param name="TimeType">返回的时间类型</param>
    /// <param name="StartTime">开始时间</param>
    /// <param name="EndTime">结束时间</param>
    /// <returns>返回间隔时间,间隔的时间类型根据参数 TimeType 区分</returns>
    public static double GetSpanTime(TimeType TimeType, DateTime StartTime, DateTime EndTime)
    {
        TimeSpan ts1 = new TimeSpan(StartTime.Ticks);
        TimeSpan ts2 = new TimeSpan(EndTime.Ticks);
        TimeSpan ts = ts1.Subtract(ts2).Duration();
        double result = 0f;
        switch (TimeType)
        {
            case TimeType.MilliSecond:
                result = ts.TotalMilliseconds;
                break;
            case TimeType.Seconds:
                result = ts.TotalSeconds;
                break;
            case TimeType.Minutes:
                result = ts.TotalMinutes;
                break;
            case TimeType.Hours:
                result = ts.TotalHours;
                break;
            case TimeType.Days:
                result = ts.TotalDays;
                break;
        }
        return result;
    }
    
    private TimeInterval() { }
}

/// <summary>
/// 时间类型
/// </summary>
public enum TimeType
{
    /// <summary>
    /// 毫秒
    /// </summary>
    MilliSecond,
    /// <summary>
    /// 秒
    /// </summary>
    Seconds,
    /// <summary>
    /// 分钟
    /// </summary>
    Minutes,
    /// <summary>
    /// 小时
    /// </summary>
    Hours,
    /// <summary>
    /// 天
    /// </summary>
    Days,
    /// <summary>
    /// 月
    /// </summary>
    Months
}

调用:

namespace Test2
{
    internal class Program
    {
        static void Main(string[] args)
        {
            DateTime dt1 = DateTime.Parse("2023-11-24 19:30:23");
            DateTime dt2 = DateTime.Parse("2023-11-24 23:10:51");
            double seconds = TimeInterval.GetSpanTime(TimeType.Seconds, dt1, dt2);
            Console.WriteLine("两个时间之间间隔秒数:{0}", seconds);
            Console.ReadKey();
        }
    }
}

效果:

八、获取网络时间

获取网络时间,主要是找到对应的服务器接口,如果你有自己的服务器,那么实现起来就非常简单,自己写一个 WebAPI 接口,使用 C# 发送 get 请求就可以获取到网络时间了。

通过下面的方法也可以获取到当前的时间, time.nist.gov 是国外的一个时间校验的接口,你可以通过下面方法获取到当前的北京时间。

示例:

private static DateTime GetInternetDate()
{
    var client = new TcpClient("time.nist.gov", 13);
    using (var streamReader = new StreamReader(client.GetStream()))
    {
        var response = streamReader.ReadToEnd();
        var utcDateTimeString = response.Substring(7, 17);
        var localDateTime = DateTime.ParseExact(utcDateTimeString, "yy-MM-dd HH:mm:ss", CultureInfo.InvariantCulture, DateTimeStyles.AssumeUniversal);
        return localDateTime;
    }
}

另外,我百度搜了一下 “C# 获取网络时间” 关键字,查到有很多获取百度网络时间的帖子,我试了一下,可以返回当前的时间,但不是很稳定,经常卡,如果你频繁的去请求,有时候还不返回数据,体验不是特别好,这里我就不贴代码了。

关于 Get Post 对应的用法,可以参考我的帖子

C# Http 请求接口 Get / Post 熊思宇的博客-CSDN博客

九、时间戳

时间戳是指表示特定时间点的数字值。它通常是从某个特定的起始时间(如1970年1月1日UTC)开始计算经过的秒数或毫秒数。

时间戳的用处:

1. 跨平台时间表示:时间戳是一种跨平台的时间表示方式,因为它是一个数字值,不受时区和格式的限制。可以将时间戳发送给其他系统或应用程序,并在不同的环境中进行解释和转换。

2. 时间计算和比较:通过使用时间戳,可以方便地进行时间计算和比较。可以将时间戳转换为日期时间对象,执行各种日期时间操作,如加减、比较和格式化。

3. 持久化存储:时间戳经常用于在数据库或日志文件中记录事件发生的时间。将时间戳存储为数字值比存储日期时间对象更高效,并且可以方便地进行排序和查询。

将时间转换为秒数,毫秒

代码:

namespace Test2
{
    internal class Program
    {
        static void Main(string[] args)
        {
            // 将当前时间转换为时间戳(秒数)
            DateTimeOffset now = DateTimeOffset.Now;
            long timestampSeconds = now.ToUnixTimeSeconds();
            Console.WriteLine("timestampSeconds: {0}", timestampSeconds);

            // 将当前时间转换为时间戳(毫秒数)
            long timestampMilliseconds = now.ToUnixTimeMilliseconds();
            Console.WriteLine("timestampMilliseconds: {0}", timestampMilliseconds);

            Console.ReadKey();
        }
    }
}

效果:

将时间戳转换为日期

代码:

namespace Test2
{
    internal class Program
    {
        static void Main(string[] args)
        {
            // 将当前时间转换为时间戳(秒数)
            DateTimeOffset now = DateTimeOffset.Now;
            long timestampSeconds = now.ToUnixTimeSeconds();

            // 将当前时间转换为时间戳(毫秒数)
            long timestampMilliseconds = now.ToUnixTimeMilliseconds();

            // 将时间戳(秒数)转换回日期时间对象
            DateTimeOffset dateTimeFromSeconds = DateTimeOffset.FromUnixTimeSeconds(timestampSeconds);
            Console.WriteLine("dateTimeFromSeconds: {0}", dateTimeFromSeconds);
            // 将时间戳(毫秒数)转换回日期时间对象
            DateTimeOffset dateTimeFromMilliseconds = DateTimeOffset.FromUnixTimeMilliseconds(timestampMilliseconds);
            Console.WriteLine("dateTimeFromMilliseconds: {0}", dateTimeFromMilliseconds);

            Console.ReadKey();
        }
    }
}

效果:

十、时区时间

现在有个问题,如果我在中国,想要知道美国现在是什么时间,要怎么计算呢?其实也不用计算,通过代码直接获取美国的现在时间就行了,也可以根据自己当前的时间,加上时间差,就可以计算美国的现在时间了。

例1:

使用时差多少来计算,美国时间比我们慢13个小时,得到本机的北京时间,然后减去13个小时,就是美国时间了

代码:

namespace Test2
{
    internal class Program
    {
        static void Main(string[] args)
        {
            DateTime dt1 = DateTime.Now;
            DateTime dt2 = dt1.AddHours(-13);
            Console.WriteLine("美国时间是:{0}", dt2);
            Console.ReadKey();
        }
    }
}

效果:

由于控制台时间没有更新,截图时耗了几秒,和网页上秒数差不了太多哈,哈哈。

例2:

获取美国时间

代码:

namespace Test2
{
    internal class Program
    {
        static void Main(string[] args)
        {
            // 获取当前的本地时间
            DateTime localTime = DateTime.Now;
            // 将本地时间转换为美国东部时间
            TimeZoneInfo easternTimeZone = TimeZoneInfo.FindSystemTimeZoneById("Eastern Standard Time");
            DateTime easternTime = TimeZoneInfo.ConvertTime(localTime, easternTimeZone);
            // 打印美国当前时间
            Console.WriteLine("美国当前时间:{0}", easternTime);

            Console.ReadKey();
        }
    }
}

效果:

在上面的代码中,可以看到是使用这句代码获取到了美国时间

TimeZoneInfo easternTimeZone = TimeZoneInfo.FindSystemTimeZoneById("Eastern Standard Time");

那么其他国家的时间要怎么获取呢?在 FindSystemTimeZoneById 方法内部的字符串 就是根据地区来获取时间的,如果你想获取其他国家或者地区的的时间,改这个字符串就好了。

例如:

获取到阿根廷现在的时间,阿根廷获取时间对应的字符是 Argentina Standard Time

代码:

namespace Test1
{
    internal class Program
    {
        static void Main(string[] args)
        {
            // 获取当前的本地时间
            DateTime localTime = DateTime.Now;
            // 将本地时间转换为美国东部时间
            TimeZoneInfo easternTimeZone = TimeZoneInfo.FindSystemTimeZoneById("Argentina Standard Time");
            DateTime easternTime = TimeZoneInfo.ConvertTime(localTime, easternTimeZone);
            // 打印美国当前时间
            Console.WriteLine("阿根廷当前时间:{0}", easternTime);

            Console.ReadKey();
        }
    }
}

效果:

这个和网页上还是有一点时差的,我也不知道是什么原因,暂时就这样吧

时区对于的字符:

Dateline Standard Time - 国际日期变更线标准时间
UTC-11 - UTC-11
Samoa Standard Time - 萨摩亚群岛标准时间
Hawaiian Standard Time - 夏威夷标准时间
Alaskan Standard Time - 阿拉斯加标准时间
Pacific Standard Time (Mexico) - 太平洋标准时间(墨西哥)
Pacific Standard Time - 太平洋标准时间
US Mountain Standard Time - 美国山地标准时间
Mountain Standard Time (Mexico) - 山地标准时间(墨西哥)
Mountain Standard Time - 山地标准时间
Central America Standard Time - 中美洲标准时间
Central Standard Time - 中部标准时间
Central Standard Time (Mexico) - 中部标准时间(墨西哥)
Canada Central Standard Time - 加拿大中部标准时间
Eastern Standard Time - 东部标准时间
US Eastern Standard Time - 美国东部标准时间
SA Pacific Standard Time - 南美洲太平洋标准时间
Venezuela Standard Time - 委内瑞拉标准时间
SA Western Standard Time - 南美洲西部标准时间
Paraguay Standard Time - 巴拉圭标准时间
Pacific SA Standard Time - 太平洋南美洲标准时间
Atlantic Standard Time - 大西洋标准时间
Central Brazilian Standard Time - 巴西中部标准时间
Newfoundland Standard Time - 纽芬兰标准时间
SA Eastern Standard Time - 南美洲东部标准时间
E. South America Standard Time - 东部南美洲标准时间
Argentina Standard Time - 阿根廷标准时间
Greenland Standard Time - 格陵兰标准时间
Montevideo Standard Time - 蒙得维的亚标准时间
Mid-Atlantic Standard Time - 中大西洋标准时间
UTC-02 - UTC-02
Azores Standard Time - 亚速尔群岛标准时间
Cape Verde Standard Time - 佛得角群岛标准时间
UTC - 协调世界时
Morocco Standard Time - 摩洛哥标准时间
Greenwich Standard Time - 格林威治标准时间
GMT Standard Time - GMT 标准时间
W. Central Africa Standard Time - 中非西部标准时间
Romance Standard Time - 罗马标准时间
Namibia Standard Time - 纳米比亚标准时间
Central European Standard Time - 中欧的标准时间
Central Europe Standard Time - 中欧标准时间
W. Europe Standard Time - 西欧标准时间
South Africa Standard Time - 南非标准时间
Syria Standard Time - 叙利亚标准时间
Jordan Standard Time - 约旦标准时间
Egypt Standard Time - 埃及标准时间
E. Europe Standard Time - 东欧标准时间
Israel Standard Time - 耶路撒冷标准时间
Middle East Standard Time - 中东标准时间
FLE Standard Time - FLE 标准时间
GTB Standard Time - GTB 标准时间
E. Africa Standard Time - 东非标准时间
Arabic Standard Time - 阿拉伯 (Arabic) 标准时间
Arab Standard Time - 阿拉伯 (Arab) 标准时间
Russian Standard Time - 俄罗斯标准时间
Iran Standard Time - 伊朗标准时间
Caucasus Standard Time - 高加索标准时间
Azerbaijan Standard Time - 阿塞拜疆标准时间
Georgian Standard Time - 格鲁吉亚标准时间
Mauritius Standard Time - 毛里求斯标准时间
Arabian Standard Time - 阿拉伯半岛标准时间
Afghanistan Standard Time - 阿富汗标准时间
Pakistan Standard Time - 巴基斯坦标准时间
Ekaterinburg Standard Time - 叶卡捷琳堡标准时间
West Asia Standard Time - 西亚标准时间
Sri Lanka Standard Time - 斯里兰卡标准时间
India Standard Time - 印度标准时间
Nepal Standard Time - 尼泊尔标准时间
N. Central Asia Standard Time - 中亚北部标准时间
Bangladesh Standard Time - 孟加拉国标准时间
Central Asia Standard Time - 中亚标准时间
Myanmar Standard Time - 缅甸标准时间
North Asia Standard Time - 北亚标准时间
SE Asia Standard Time - 东南亚标准时间
Ulaanbaatar Standard Time - 乌兰巴托标准时间
North Asia East Standard Time - 北亚东部标准时间
China Standard Time - 中国标准时间
Taipei Standard Time - 台北标准时间
Singapore Standard Time - 马来西亚半岛标准时间
W. Australia Standard Time - 澳大利亚西部标准时间
Tokyo Standard Time - 东京标准时间
Yakutsk Standard Time - 雅库茨克标准时间
Korea Standard Time - 韩国标准时间
AUS Central Standard Time - 澳大利亚中部标准时间
Cen. Australia Standard Time - 中部澳大利亚标准时间
West Pacific Standard Time - 太平洋西部标准时间
AUS Eastern Standard Time - 澳大利亚东部标准时间
E. Australia Standard Time - 东部澳大利亚标准时间
Vladivostok Standard Time - 符拉迪沃斯托克(海参崴)标准时间
Tasmania Standard Time - 塔斯马尼亚岛标准时间
Central Pacific Standard Time - 太平洋中部标准时间
Magadan Standard Time - 马加丹标准时间
UTC+12 - UTC+12
New Zealand Standard Time - 新西兰标准时间
Kamchatka Standard Time - 堪察加标准时间
Fiji Standard Time - 斐济标准时间
Tonga Standard Time - 汤加标准时间

结束

如果这个帖子对你有所帮助,欢迎 关注 + 点赞 + 留言

end

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

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

相关文章

高压放大器应用领域分享:关于电磁波的极化,看这篇文章就够了!

谈到电磁波&#xff0c;除了频率和幅度之外&#xff0c;还有一个比较重要的方面就是&#xff1a;极化。极化&#xff0c;就是指波振动的平面&#xff0c;电磁波的传播是由相互垂直的电场和磁场产生的。因此存在电场和磁场两个相互垂直的振荡平面&#xff0c;所以呢&#xff0c;…

力扣 3. 无重复字符的最长子串

题目 题解 方法 public static int lengthOfLongestSubstring(String s) {HashSet<Character> charSet new HashSet<Character>();int i 0,l0,max0;for (int j 0; j < s.length(); j) {while (charSet.contains(s.charAt(j))) {charSet.remove(s.charAt(l…

一个干净的前端架构是什么样的?

干净的前端架构,围绕这个话题有很多原则&#xff1a; SOLID、KISS&#xff08;保持简单明了&#xff09;、DRY&#xff08;不要重复自己&#xff09;、DDD&#xff08;领域驱动设计&#xff09;等等。 为什么需要前端架构&#xff1f; 功能性和非功能性的要求不仅应该在后端…

如何处理git多分支

本篇文章主要处理以下两种多分支问题 如何将自己在本地的修改上传到一个新的Git分支&#xff08;比如用于测试&#xff0c;不合并进main分支&#xff09;&#xff1f;如何在一个新的本地仓库拉取一个项目的非main分支&#xff0c;并处理他们关联关系&#xff1f; 1. 将自己在…

智能条件单具体操作步骤,解放你投资双手!

一般我们说到量化交易都觉得很困难&#xff0c;写策略难&#xff0c;看python难&#xff0c;不会使用程序难&#xff0c;电脑交易不方便难&#xff0c;今天我们来看看手机电脑都可以使用的量化基础条件单的操作。迈入量化第一步&#xff0c;条件单的使用。 很多投资者不清楚条件…

C语言——输入一个4位正整数,输出其逆数。

#define _CRT_SECURE_NO_WARNINGS 1#include<stdio.h> int main() {int i,j 0;int a1,a2,a3,a4;printf("输入一个4位正整数&#xff1a;\n");scanf("%d",&i);a1 i/1000; a2 i/100%10; a3 i/10%10; a4 i%10; printf("千位a1%d,百位a…

SQL 语句 UNION 连接,查询字段数量必须一致

MySQL&#xff1a;The used SELECT statements have a different number of columns 执行SQL报错&#xff1a;The used SELECT statements have a different number of columns 以上翻译&#xff1a;使用的SELECT语句具有不同数量的列 原因&#xff1a;我们在 SQL 语句中使用…

Java 简单配置环境变量,切换多个jdk版本

文章目录 前言一、jdk下载二、配置环境变量三、查看jdk版本四、配置多个jdk五、切换jdk 前言 windows 配置jdk环境变量&#xff0c;如果项目没有规定使用的jdk版本的话&#xff0c;建议使用jdk8&#xff0c;这是最常用也是最稳定的版本 一、jdk下载 https://www.oracle.com/ja…

APP软件线上排查方法

在线上环境中排查APP软件的问题是一项关键任务&#xff0c;需要使用一系列方法和工具来识别、定位和解决问题。以下是一些建议的排查方法&#xff0c;希望对大家有所帮助。北京木奇移动技术有限公司&#xff0c;专业的软件外包开发公司&#xff0c;欢迎交流合作。 1.监控和日志…

38 关于 redo 日志

前言 undo 和 redo 是在 mysql 中 事务, 或者 异常恢复 的场景下面 经常会看到的两个概念 这里 来看一下 redo, redo 主要是用于 异常恢复 的场景下面 测试表结构如下 CREATE TABLE tz_test (id int(11) unsigned NOT NULL AUTO_INCREMENT,field1 varchar(128) DEFAULT NULL…

2023年【山东省安全员C证】考试试卷及山东省安全员C证考试试题

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 2023年【山东省安全员C证】考试试卷及山东省安全员C证考试试题&#xff0c;包含山东省安全员C证考试试卷答案和解析及山东省安全员C证考试试题练习。安全生产模拟考试一点通结合国家山东省安全员C证考试最新大纲及山东…

测绘资质工程测量乙级资质办理条件

新测绘资质分为10个专业&#xff1a; 1.大地测量 2.测绘航空摄影 3.摄影测量与遥感 4.工程测量 5.海洋测绘 6.界线与不动产测绘 7.地理信息系统工程 8.地图编制 9.导航电子地图制作 10.互联网地图服务。 新《测绘资质管理办法》和《测绘资质分类分级标准》&#xff…

HTML5+CSS3+JS小实例:蜂巢里的小蜜蜂光标特效

实例:蜂巢里的小蜜蜂光标特效 技术栈:HTML+CSS+JS 效果: 源码: 【HTML】 <!DOCTYPE html> <html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"><meta name="viewport" conten…

quickapp_快应用_DOM是否显示只能通过if指令!

目录 官网概念语法拓展使用三元表达式控制示例 官网 if指令 概念 if条件指令用于控制是否增加或者删除组件。 语法 <组件名 ifbol><组件名>上述语法中只要bol值为ture则显示该组件&#xff0c;若是bol值为false则不显示该组件(并将其从DOM结构中移除)。 拓展…

软件测试工程师如何从功能测试转自动化测试?

一、学习自动化之前&#xff0c;大家需要先知道自动化测试是啥&#xff1f; 自动化测试是将人为测试情形转化为机器执行的过程。一般说来&#xff0c;测试用例设计后&#xff0c;由测试员根据测试用例中描述的规则一步步地进行测试&#xff0c;得到测试结果和预期结果的行为。…

9.9 Windows驱动开发:内核远程线程实现DLL注入

在笔者上一篇文章《内核RIP劫持实现DLL注入》介绍了通过劫持RIP指针控制程序执行流实现插入DLL的目的&#xff0c;本章将继续探索全新的注入方式&#xff0c;通过NtCreateThreadEx这个内核函数实现注入DLL的目的&#xff0c;需要注意的是该函数在微软系统中未被导出使用时需要首…

Redis之高并发超卖问题解决方案

目录 1. Redis高并发超卖问题解决方案 1.1 高并发场景超卖bug解析 1.2 Redisson 1. Redis高并发超卖问题解决方案 在高并发的秒杀抢购场景中&#xff0c;常常会面临一个称为“超卖”&#xff08;Over-Selling&#xff09;的问题。超卖指的是同一件商品被售出的数量超过了实…

Guacamole简介及centos7下搭建教程

简介 Guacamole是一款开源的远程桌面框架&#xff0c;它允许用户通过Web浏览器远程访问计算机资源。 官网地址&#xff1a;Apache Guacamole™ 官方文档&#xff1a;Installing Guacamole natively — Apache Guacamole Manual v1.5.3 架构 组件描述客户端浏览器用户通过支…

WebSocket 鉴权策略与技巧详解

WebSocket 作为实时通信的利器&#xff0c;越来越受到开发者的青睐。然而&#xff0c;为了确保通信的安全性和合法性&#xff0c;鉴权成为不可或缺的一环。本文将深入探讨 WebSocket 的鉴权机制&#xff0c;为你呈现一揽子的解决方案&#xff0c;确保你的 WebSocket 通信得心应…

基础课10——自然语言生成

自然语言生成是让计算机自动或半自动地生成自然语言的文本。这个领域涉及到自然语言处理、语言学、计算机科学等多个领域的知识。 1.简介 自然语言生成系统可以分为基于规则的方法和基于统计的方法两大类。基于规则的方法主要依靠专家知识库和语言学规则来生成文本&#xff0…