c#软件开发学习笔记--随机数、时间对象、字符串

C# Random 随机数 全面解析 阅读详情

c#软件开发学习笔记

一、随机数Random

1.创建一个随机数队列

//10是一个种子,一般不指定种子,默认以当前时间作为种子,时间不一样,种子不一样 随机数也不一样
Random random = new Random(10);

2. 获取随机数

Console.WriteLine(rnd.Next());
Console.WriteLine(rnd4.Next(10, 21)); //产生一个10到21之间的随机数,包含10 不包含21
Console.WriteLine(rnd4.Next(21));// 如果从0开始 可以前面数省掉

二、DateTime类

DateTime是一个结构体,用来对时间进行操作,存储关于时间的函数或者属性

1.获取当前时间

DateTime time = DateTime.Now;
Console.WriteLine(time);//2026/5/21 14:04:22

2.获取时间结构

Console.WriteLine(time.Year);//年 2026
Console.WriteLine(time.Month);//月份 5
Console.WriteLine(time.Day);//日期  21
Console.WriteLine(time.Hour);//小时 14
Console.WriteLine(time.Minute);//分钟 04
Console.WriteLine(time.Second);//秒 22
Console.WriteLine(time.Millisecond);//毫秒 428
Console.WriteLine(time.DayOfWeek);// 星期 Thursday
Console.WriteLine((int)time.DayOfWeek);//4 把星期英语转成数字,星期日转成数字是0
Console.WriteLine(time.DayOfYear);//141 当年的第几天

3. 时间转字符串

Console.WriteLine(time.ToString());//"2026/5/21 14:04:22"字符串

//yyyy 完整年2026
//yy   后俩位26
Console.WriteLine(time.ToString("yyyy")); //2026

//MM 俩位数的月份05
//MMMM 五月
//MMM  5月
Console.WriteLine(time.ToString("MM"));//05

//dd   21
//ddd  周四
//dddd 星期四
Console.WriteLine(time.ToString("dd"));//21

//HH 24小时制
//hh 12小时制
Console.WriteLine(time.ToString("HH"));//14

//mm 分钟
Console.WriteLine(time.ToString("mm"));

//ss 秒
Console.WriteLine(time.ToString("ss"));

//fff 毫秒
Console.WriteLine(time.ToString("fff"));

Console.WriteLine(time.ToString("今天是yyyy年,MM月dd日,HH:mm:ss,今天是dddd"));

4.时间戳

指格林威治时间1970年01月01日00时00分00秒(北京时间1970年 01月01日08时00分00秒) 到现在的总秒数

DateTime  time1 = DateTime.Now; // 获取当前时间
DateTimeOffset offset = new DateTimeOffset(time1); //获取时间戳 获取当前时间到1970年时间差
long l1 = offset.ToUnixTimeSeconds(); //获取距离1970之间的秒

//日期  ====> 时间戳 ===> 总秒数储存
long l1= new DateTimeOffset(DateTime.Now).ToUnixTimeSeconds();

//取数据 ====> 时间戳 ====> 日期
DateTime time1=  DateTimeOffset.FromUnixTimeSeconds(1752042623).LocalDateTime;

5.时间的计算与对比

 DateTime t1 = DateTime.Now;
//addYears() 在原先的基础之上加上一年 生成一个新的日期,不会再原先的日期进行修改
t1 = t1.AddYears(1);
t1 = t1.AddMonths(2);
t1 = t1.AddDays(3);

//因为DateTime重载了比较运算符
//所以DateTime 可以直接 使用 > < >= <= ==  !=进行比较
if (DateTime.Now> new DateTime(2026,5,1))
    Console.WriteLine("已经过了五一");
else
    Console.WriteLine("还没过了五一");

//时间间隔
TimeSpan span = new DateTime(2026, 5, 21,16,0,0) - DateTime.Now;
//时间间隔的天数
Console.WriteLine(span.Days);

三、string字符串

1.创建字符串

//最简单定义方式
string s1 = "abc";

//@这种定义字符串的方法可以保留原始字符串中的格式
string s2 = @"C:\Users\Administrator\Desktop\img";

//通过new 创建字符串
string s3 = new string('c',4);

2.字符串方法

//1.Concat() 拼接字符串
string s4 = string.Concat(s1, s2, s3);


//2.Contains()  判断参数字符串 是否出现在源字符串中
//出现  返回true  不出现返回 false
bool b = s2.Contains("吴");

//3.CopyTo() 把aa字符串里面字符按照指定索引和个数进行赋值到数组的指定位置
// 参数1 从aa哪个位置开始赋值, 写0从头开始赋值
// 参数2 复制到目标数组
// 参数3 复制到目标数组哪个位置
// 参数4 复制的个数
aa = "ef";
char[] chars = new char[] {'a','b'}; //定义一个char[] 类型的数组,长度是2
aa.CopyTo(0, chars, 0, 2 );
for (int i = 0; i < chars.Length; i++) //遍历数组,把数组所有的元素进行操作
{
    Console.WriteLine(chars[i]+"");
}

//4.ToUpper()  将小写字母 转成大写字母
string s5 = "AbdDd";
Console.WriteLine(s5.ToUpper());//ABDDD
//5.ToLower()  将大写字母 转成小写字母
Console.WriteLine(s5.ToLower());//abddd

string str2 = "锄禾日当午";

//7.Replace() 替换字符
Console.WriteLine(str2.Replace("锄", "*"));
Console.WriteLine(str2.Replace("锄禾", "**"));
Console.WriteLine(str2.Replace("锄禾日", "***"));

//8.StartsWith() 判断源字符串 是否以参数字符串开头 
Console.WriteLine(str2.StartsWith("锄禾"));
//9.EndsWith()  判断源字符串 是否以参数字符串结尾 
Console.WriteLine(str2.EndsWith("无"));

 //10.判断参数字符串和源字符串 是否完全相同  等同于 == 运算符
Console.WriteLine(str2.Equals("锄禾日当午"));

string s6 = "ABCscahihdifhu123434ccHIUDAHS";

//11.IndexOf() 从前向后 查询参数字符串首次在源字符串中出现的索引位置,如果查询不到 则返回-1
Console.WriteLine(s6.IndexOf("e"));
//12. LastIndexOf()从后向前 查询参数字符串首次在源字符串中出现的索引位置,如果查询不到 则返回-1
Console.WriteLine(s6.LastIndexOf("A"));
//13.IndexOfAny() 从前向后 查询源字符串首次在出现的指定字符数组中任意一个字符的位置
Console.WriteLine(s6.IndexOfAny(new char[] { 'a', 'b', 'c' }));
//14.LastIndexOfAny() 从后向前 查询源字符串首次在出现的指定字符数组中任意一个字符的位置
Console.WriteLine(s6.LastIndexOfAny(new char[] { 'a', 'b', 'c' }));

string st1 = "";
string st2 = null;
string st3 = string.Empty;
string st4 = "132";

//15.IsNullOrEmpty() 判断参数字符串 是否为 "" null Empty 
Console.WriteLine(string.IsNullOrEmpty(st1));
Console.WriteLine(string.IsNullOrEmpty(st2));
Console.WriteLine(string.IsNullOrEmpty(st3));
Console.WriteLine(string.IsNullOrEmpty(st4));

//16.Insert() 在指定的索引位置插入字符串 生成新的字符串
Console.WriteLine(st4.Insert(0, "张三"));

//17.Join() 把后面字符串按照第一个参数符号进行连接
string ss =  string.Join("-","a","b","c");

string n1 = "张三,李四,王五";

//18.Remove()  从索引为5的位置开始 删除后面所有的字符,返回删除后的字符串
Console.WriteLine(n1.Remove(5));
Console.WriteLine(n1.Remove(2,5));//从索引为2的位置开始,删除后面5个字符,返回删除后的字符

//19.Split() 分割把字符串按照指定符号进行分割 把分割之后结果放进数组里面
ee= "a-b-c-d";
string[] arr =  ee.Split('-');

//20.ToCharArray() 将字符串转换为字符数组
char[] chars3 = n1.ToCharArray();

//20.Substring() 截取字符串  参数1:开头的位置  参数2:截取的长度
Console.WriteLine(n1.Substring(4,3));

string n2 =" 张三 ";
Console.WriteLine(n2);

//21.Trim() 移除字符串前后的空格
Console.WriteLine(n2.Trim());
//TrimStart() 移除前面的空格
Console.WriteLine(n2.TrimStart());
//TrimEnd() 移除后面空格
Console.WriteLine(n2.TrimEnd()+"1");

四、StringBuilder可变字符串

1.String类型用于保存字符串,为引用类型,一旦创建,就不能再进行修改,其底层是根据字符数组(char[])实现的
2.StringBuilder表示可变字符字符串类型,其中的字符可以被改变、增加、删除,当向一个已满的StringBuilder添加字符时,其会自动申请内存进行扩容

StringBuilder和 String 相比,给String重新赋值的时候,是重新指向一个对象,原来的对象不再被变量指向,就会被垃圾回收器回收,如果String拼接10000次,那就会有10000个新对象。而StringBuilder引用的数据则是以数组的形式存放,重新赋值的时候会在原来的地址上动态的修改,不会产生多余的对象,也不需要被垃圾回收器回收。

//创建StringBuilder对象
StringBuilder sb = new StringBuilder();

//1添加字符
sb.Append("张三");
sb.AppendLine("李四");

//2Insert 在指定位置添加数据
sb.Insert(0,"tea");

//3Remove 移除 从指定位置开始 移除指定数量的字符
sb.Remove(0,3);

//4 Clear() 清空字符串
sb.Clear();

//5Replace() 使用指定符号替换匹配上的字符
sb.Replace("张三", "***");
C#获取随机数 这篇文章主要介绍了C#中获取、生成随机数的三种方法,本文讲解了Random 类生成法、Guid 类生成法以及RNGCryptoServiceProvider 类生成法,需要的朋友可以参考下         var cpro_id="u2261530";(window["cproStyleApi"] = window["cproStyleApi"] || {})[cpro_id]={at:"3", 阅读详情

相关推荐

C#中关于时间的操作

在C#中我们常使用到关于时间的相关操作,如将字符串转换为时间进行操作,那么我们该如何在c#中合理应用时间的相关操作呢。(1)DateTime 表示时间 DateTime dt = new DateTime(2022,5,23,10,23,50);这样我们就创建了一个时间对象为2022年5月23日10点23分,我们可以对他进行日期的修改 (2)AddMonths 在之前的时间上添加指定的月数 DateTime dt1 = dt.AddMonths(6);Co

weixin_57763240的博客 2035

8.C# —— 随机数、DateTime时间、字符串

文章讲述:C# 中随机数生成、日期时间操作、时间计算与比较、字符串常用方法四大核心基础知识点,

z56789w的博客 494

C#时间格式转换时间戳

C#时间格式转换为时间戳 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 开发工具与关键技术: C# 作者:薛裕全 撰写时间:2022/5/28 DateTime的Tostring方法使用 Console.WriteLine("ToShortDateString:" + DateTime.Now.ToShortDateString()); Console.Wr

KobeBranty的博客 7816

c#随机数生成方法

在C#中,生成随机数是一个常见的需求,无论是用于模拟、测试还是游戏开发。C#提供了多种生成随机数的方法,下面将介绍如何使用`System.Random`类来生成随机数。在C#中,有两种主要的随机数生成方法:`System.Random`和`System.Security.Cryptography.RNGCryptoServiceProvider`。`Random`类提供了简单的随机数生成功能,适用于大多数非安全相关的应用。而`RNGCryptoServiceProvider`类提供了更强的随机性保证,通常用

Python老吕的博客 3757

C#随机数生成全面详解:从基础到高级应用

随机数在编程中有着广泛的应用,从游戏开发中的随机事件、数据采样、密码生成到模拟测试等场景都离不开随机数。C# 提供了多种生成随机数的方法,每种方法都有其适用场景和特点。本文将全面介绍 C# 中生成随机数的各种技术,从基础的Random类到加密安全的随机数生成器,帮助开发者根据实际需求选择合适的方案。

Amon的专栏 1651

C#日期和时间:DateTime转字符串全面指南

在 C# 开发中,`DateTime`类型的时间格式化是高频操作场景。无论是日志记录、数据持久化,还是接口数据交互,合理的时间字符串格式都能显著提升系统的可读性和兼容性。本文将通过 20 + 实战示例,全面解析`DateTime`转换为字符串的核心方法与最佳实践。

Amon的专栏 4377

C#产生随机数之一 生成真随机数

Random 成员 名称 ● 说明 Equals ● 确定指定的 Object 是否等于当前的 Object。(继承自 Object。) Finalize ● 允许Object 在“垃圾回收”回收 Object 之前尝试释放资源并执行其他清理操作。(继承自 Object。) GetHashCode ●用作特定类型的哈希函数。(继承自 Object。) GetType ● 获取当前实例的 Ty...

提供C#相关开发 、云计算、运维测试、网络安全相关技术分享与服务,有意向可联系。 1万+

osg3.6.5---osgEarth3.2 实现数字地球的加载

目前我在网上找得比较多的是osgearth2.10及以下的版本及加载数字地球的方法,但是我使用的是osg3.6.5和osgEarth3.。但是3.x版本和2.x版本差别很大,主要区别在于2.x有7个主要库,而3.x版本只有osgEarth这一个库。所以,特别记录一下。后面我讲他集成到qt的窗体在上传更新新的代码。1.直接上源码pro文件和cpp文件。

枫影竹韵的博客 1009

C# 基础知识总结:字符串处理、随机数生成、日期时间操作

在日常的软件开发工作中,我们经常需要处理字符串、生成随机数以及操作日期时间等。本文将总结一些在C#中常见的字符串处理技巧、随机数生成方法以及日期时间的操作。格式化时字母表示的含义:2023/10/27 14:30:28。

zxz2910847200的博客 522

实战指南:R语言多组倾向评分逆概率加权(IPTW)建模与结果解读

本文详细介绍了如何使用R语言实现多组倾向评分逆概率加权(IPTW)建模,包括数据预处理、倾向评分估计、权重计算及结果解读。通过实战案例演示,帮助研究者掌握这一统计方法,有效平衡多组混杂因素,模拟随机对照试验效果,适用于医学、社会科学等领域的数据分析。

weixin_42528534的博客 395

BSD盲区检测系统性能要求及试验方法

盲区监测系统BSD通过安装在车辆后方的两颗毫米波雷达实时监测驾驶员视野盲区,当发现视野盲区内出现其它道路使用者时,通过左右后视镜上的警示灯向驾驶员发出报警。

未知艺术家的博客 2359

c#中生成随机数的三种方法

C#生成随机数的5种方法对比:1)Random类适合普通场景;2)System.Random.Shared是线程安全版本;3)RandomNumberGenerator提供加密安全随机数;4)GUID生成全球唯一标识符;5)RNGCryptoServiceProvider适用于高安全场景。各方法在性能、线程安全性和随机性质量上存在差异,应根据具体场景选择。普通应用推荐Random类,多线程使用Shared版本,安全敏感场景建议加密随机数生成器,唯一标识生成则适用GUID。

weixin_66547608的博客 2185

逆向工程实战:解密AppleAccount的X-MMe-Nas-Qualify签名生成机制

本文通过逆向工程实战,详细解析了AppleAccount服务中X-MMe-Nas-Qualify签名的生成机制。作者利用Frida进行动态追踪定位签名源头,结合IDA Pro进行静态分析,并借助LLDB动态调试还原核心算法。文章最终分享了如何独立于苹果官方库,通过Python代码复现签名算法,为自动化测试和深度交互苹果服务的开发者提供了关键技术路径。

weixin_29323049的博客 707

C# DateTime时间和字符串的处理

1、带毫秒的字符转换成时间(DateTime)格式/// /// 带毫秒的字符转换成时间(DateTime)格式 /// [2016-07-26 19:10:10,123 或 2016-07-26 19:10:10:123 或 2016-07-26 19:10:10 123] /// public DateTime GetDateTime(string dateTime) { stri

1993Smile 4856

电荷灵敏前置放大器噪声优化策略:从理论到实践

本文深入探讨了电荷灵敏前置放大器的噪声优化策略,从理论分析到实践应用。文章系统解析了并联电流噪声与串联电压噪声的来源,并引入噪声等效原理与“冷电容”模型作为统一分析工具。通过详解a、b、c三类噪声的频谱特性,为实战优化提供了清晰指导。核心策略包括选用高跨导、低漏电流FET,优化静态工作点,采用共源-共基结构,精心设计反馈网络,以及实施严格的PCB布局、屏蔽与接地,旨在全面提升微弱信号检测系统的信噪比。

weixin_29292431的博客 467

路径跟踪 | 图解纯追踪算法Pure Pursuit(附ROS C++/Python/Matlab仿真)

纯追踪算法(Pure Pursuit)参考了人类驾驶行为,其基本思想是在待跟踪路径上设置预瞄点(goal-ahead),通过简单的几何方法驱动机器人跟踪预瞄点直至抵达目标位置.本文详细推导纯追踪算法的理论原理及其变种——自适应纯追踪算法(APP)和规范化纯追踪算法(RPP),并提供ROS C++/Python/Matlab三种仿真实现加深理解

FRIGIDWINTER的博客 8408

C#时间函数扩展及时间字符串函数

 C# 语言中通过System.DateTime提供了很多关于时间处理的方法,使用起来比较方便。在近来的一个项目中,涉及到一个以week作为周期处理时间的应用。这样,我们希望实现:1、在知道某日期的前提下,能知道该日期在当年的第几周;2、在知道当年的第几周的前提下,能获取该周的起止日期;3、获取本周的起止日期。为此,我写了以下的三个函数,来实现这些功能。1、计算某天属于当年的第几周:/

One ITer 4612

第五章 TTM 后备管理:5.6系统内存域

系统内存域由 TTM 内置资源管理器管理,通过 ttm_tt 承载页信息,依赖 ttm_pool 提供物理页。ttm_tt 管理页数组、缓存属性与状态标志,支持外部页与换出机制。初始化分 ttm_tt_init 与 ttm_sg_tt_init,生命周期包括创建、填充、释放与销毁。页池针对 write-combined、uncached 及一致性 DMA 分配的页进行缓存,提升性能并减少 TLB 刷新。分配时高阶优先、批量设置缓存属性,回收时清零后归还池中,确保高效复用。

图形/计算GPU的驱动与虚拟化技术分享园地 2568

C# 字符串格式化_C# 字符串格式化整理

一、C# 字符串格式化_C# 字符串格式化整理 使用方式1: xxx.ToString(xxxx) 使用方式2:string.Format(xxxx,xxx) 1、占位符格式化 零占位符:固定位数,不足补充0 数字占位符:最小化数字展示,“##”格式字符串使得值被舍入到小数点前最近的数字,其中零总被舍去。 空格占位符 string.Format("{0,-50}", theObj);//格式化成50个字符,原字符左对齐,不足则补空格 string.Format("{0,50}", theO..

天马3798 2万+

YOLOv8【第一章:基础入门篇·第1节】一文搞定,核心架构深度解析与环境配置!

🏆 本文收录于 《YOLOv8实战:从入门到深度优化》 专栏,该专栏专注于分享我在YOLOv8目标检测模型中的实战经验,涵盖从入门基础到深度优化的全方位解决方案。无论你是计算机视觉的新手,还是具有多年深度学习经验的专家,本专栏都将为你提供高效、可复现的技术方案,助你掌握YOLOv8的核心技术,提升目标检测性能,突破瓶颈,优化模型,并加速项目开发🚀!

**My Coding Family** 2104

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

C# 生成随机数

private static char [] constant = { ' 0 ' , '

wangchaoqi1985的博客 426

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

C# 创建类的多个对象

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace _0607_创建类的多个对象 { class Program { static void Main(string...

21号先锋者 4886

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

C#操作时间戳

1. 什么是时间戳 首先要清楚JavaScript与Unix的时间戳的区别: JavaScript时间戳:是指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总毫秒数。 Unix时间戳:是指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总秒数。 可以看...

天马3798 1万+

学习笔记(C#基础书籍)-- C#基础篇

学习笔记《一》:基础篇

xy_77777的博客 1215

C# 实现 10 位纯数字随机数

本文介绍了如何用 C# 生成一个 10 位的纯数字随机数。我们通过创建一个包含数字 0 到 9 的列表,结合Random类的Next()方法来生成随机索引,进而从列表中选取数字并拼接成一个字符串。最终,本文通过示例代码展示了这一实现过程,并详细解释了代码中的关键步骤。

欢迎来到我的博客。 1113

C# 时间计算(一)

在 C# 中,DateTime 用于处理日期和时间的内置类,其值范围为 00:00:00 (午夜) , 0001年1月1日,安诺·多米尼 (公历) 年12月31日晚上11:59:59 (公历 )。时间值以 100 纳秒为单位进行测量,称为刻度。特定日期是自 A.0001 年 1 月 1 日午夜 12:00 以来的时钟周期数, (日历中的 GregorianCalendar C.E.)。该数字不包括按闰秒添加的刻度。

熊思雨的博客 3550
上一篇: c#软件开发学习笔记--方法
下一篇: c#软件开发学习笔记--数组、数组的高阶函数
Z599817841
博客等级 码龄4年 12粉丝 41原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值