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

重温一下C#的时间类型,并简单写一个定时器功能

🎉🎉 时间是一个非常抽象的概念,本篇文章我们不深究目前电脑上的时候是如何保持全网同步。主要是讲讲在使用C#编程语言里的时间类型。最后使用定时任务简单写一个提醒功能,比如:每天10点准时打开一次csdn首页,在工作忙碌之际浏览下技术信息或博客🎉🎉

目录

  • 1、C#时间类型
    • 1.1、结构体
    • 1.2、默认值
    • 1.3、设置默认空值
  • 2、定时器功能
    • 2.1、场景描述
    • 2.2、定时类
    • 2.3、当前时间
    • 2.4、定时弹页
    • 2.5、完整代码
    • 2.5、实现效果

1、C#时间类型

在C#开发语言里的时间和日期,主要是使用Datetime类、,用于表达时间和时间处理,TA能够获取和设置时间、时区、以及格式化。

1.1、结构体

很多小伙伴都会以为时间类型是一个class类,从下图可以知道,它是一个struct结构
1).net framework
继承了多个接口类,实现的功能也非常丰富,已经可以满足大部分需求功能
在这里插入图片描述
2).net core
到了跨平台框架后,它是在System.Runtime里
在这里插入图片描述

1.2、默认值

直接定义不赋值,默认也是有值得,它是以公历0001年1月1日00:00:00.000
在这里插入图片描述
1)获取当前时间
从下图可以知道,Now获取的当前时间就是电脑的时间

DateTime dt = DateTime.Now;

在这里插入图片描述

1.3、设置默认空值

由于在实际项目中可能时间会有空值情况,这个时候就不能直接返回值,不然就会显示默认0001时间值。在C#里直接在时间类型后面加个问号接口

DateTime? dtNull;

在这里插入图片描述

💗💗 作者:小5聊
🏆🏆 原则:Write Less Do More!
📋📋 简介:一只喜欢全栈方向的程序员,专注基础和实战分享,欢迎咨询,尽绵薄之力答疑解惑!

2、定时器功能

在C#里写一个定时任务非常简单,这里使用Task类来实现,这里有一个异步的概念,不深入探究,结合while以及Sleep()休眠方法

2.1、场景描述

每天定时10点整,自动打开一个chrome谷歌浏览器,并跳转到csdn首页。

2.2、定时类

在Task之前,多线程处理方式有Thread、ThreadPool、委托,他们在资源占用、阻塞等方面处理的不好,为了改善才有了Task,启动方法很简单,如下

Task.Run(() =>
{// 写业务代码,和主业务不冲突,异步执行
});

2.3、当前时间

界面可以设置一个label标签,实时显示当前的时间,方法逻辑很简单,直接就是一个Task异步,然后在异步方法里使用while无限循环,每次休眠1秒后再执行,就会有实时时间动态效果。

private void NowTimeData()
{CheckForIllegalCrossThreadCalls = false;Task.Run(() =>{while (true){lbTime.Text = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");Thread.Sleep(1 * 1000);}});
}

2.4、定时弹页

同上,异步方法的逻辑判断为小时分秒,满足条件则通过进程类打开浏览器,并跳转到指定地址显示

private void OpenData()
{CheckForIllegalCrossThreadCalls = false;Task.Run(() =>{while (true){if (DateTime.Now.Hour == 10 && DateTime.Now.Minute == 0 && DateTime.Now.Second == 0){Process process = new Process();//process.StartInfo.FileName = @"C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe";process.StartInfo.FileName = @"C:\Program Files\Google\Chrome\Application\chrome.exe";process.StartInfo.Arguments = $"https://www.csdn.net";process.Start();}Thread.Sleep(1 * 1000);}});
}

2.5、完整代码

判断逻辑,取小时为10,取分钟为0,1分钟执行一次判断,确保只弹出一次

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Diagnostics;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using System.Windows.Forms;namespace CsndWinForm
{public partial class TimeData : Form{public TimeData(){InitializeComponent();NowTimeData();OpenData();}private void NowTimeData(){CheckForIllegalCrossThreadCalls = false;Task.Run(() =>{while (true){lbTime.Text = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");Thread.Sleep(1 * 1000);}});}private void OpenData(){CheckForIllegalCrossThreadCalls = false;Task.Run(() =>{while (true){if (DateTime.Now.Hour == 10&& DateTime.Now.Minute == 0){Process process = new Process();//process.StartInfo.FileName = @"C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe";process.StartInfo.FileName = @"C:\Program Files\Google\Chrome\Application\chrome.exe";process.StartInfo.Arguments = $"https://www.csdn.net";process.Start();}Thread.Sleep(60 * 1000);}});}}
}

2.5、实现效果

在这里插入图片描述

相关文章:

重温一下C#的时间类型,并简单写一个定时器功能

🎉🎉 时间是一个非常抽象的概念,本篇文章我们不深究目前电脑上的时候是如何保持全网同步。主要是讲讲在使用C#编程语言里的时间类型。最后使用定时任务简单写一个提醒功能,比如:每天10点准时打开一次csdn首页&#xff…...

MYSQL查询语句执行顺序

SQL语句定义的顺序 (1) SELECT (2)DISTINCT <select_list> (3) FROM <left_table> (4) <join_type> JOIN <right_table> (5) ON <join_condition> (6) WHERE <where_condition> (7) GROUP BY <group_by_list> (8) WITH {C…...

总结:电容在电路35个基本常识

1 电压源正负端接了一个电容&#xff0c;与电路并联&#xff0c;用于整流电路时&#xff0c;具有很好的滤波作用&#xff0c;当电压交变时&#xff0c;由于电容的充电作用&#xff0c;两端的电压不能突变&#xff0c;就保证了电压的平稳。 当用于电池电源时&#xff0c;具有交流…...

Kroger EDI 855 采购订单确认报文详解

本文着重讲述Kroger EDI项目中&#xff0c;供应商发给Kroger的X12 855EDI 规范报文&#xff08;采购订单确认&#xff09;解读。 在此前的文章如何读懂X12报文中&#xff0c;我们对X12已经做了详细的介绍&#xff0c;大家可以以此为基础&#xff0c;深入了解855采购订单确认报…...

HANA SDA-远程数据源访问

我们需要把其他系统的数据拿过来&#xff0c;到BW里和财务的数据集成。 HANA SDA就是不复制数据&#xff0c;建立虚拟表&#xff08;virtual table&#xff09;来映射到远程数据源。通过这个虚拟表访问其他系统的数据。 对虚拟表的操作现在也可以查询&#xff0c;更新&#xff…...

【AUTOSAR】:OS-Hook

OS-Hook OS-HookPINIC类型1、Os_ErrKernelPanic1.1、Os_HookCallPanicHook1.1.1、OS_PANICHOOK1.1.1.1、Os_PanicHook1.1.1.2、Os_Hal_CoreFreezeOs_Hal_NOPOS-Hook 延伸阅读 延伸阅读 PINIC类型 1、Os_ErrKernelPanic...

Open3d入门

目录 点云数据 1 主成分分析 1.1 Method 1.2 Results 2 表面法线估计 2.1 Method 2.2 Results 3 体素网格下采样 3.1 Method 3.2 Results 点云数据 常用数据下载&#xff08;免积分&#xff09; 1 主成分分析 1.1 Method 对点云进行主成分分析&#xff08;PCA&…...

linux部署zookeeper

linux部署zookeeper 1、单机部署zk ZooKeeper服务器是用Java创建的&#xff0c;它需要在JVM上运行&#xff0c;所以需要使用JDK1.6及以上版本&#xff0c;一般都是jdk1.8。 选择自己安装本地的jdk&#xff0c;而不是centos自带的openjdk。 查看本地安装的jdk&#xff1a; j…...

Junit4升级Junit5汇总

Junit4升级Junit5汇总目录MockMvcBuildersUnnecessaryStubbingException目录 记录Junit4升级到Junit5中遇到的问题和结局方案 MockMvcBuilders 问题&#xff1a; 将Junit4的RunWith和Rule都改成ExtendWith后出现setup函数中MockMvcBuilders的参数不正确 ExtendWith({Spring…...

Axios二次封装和Api的解耦

目录 一、axios三种基本写法 二、axios的二次封装 三、Api的解耦 一、axios三种基本写法 1&#xff09;get方法&#xff08;是最简单的&#xff09;&#xff1a; 写法二&#xff1a; 2&#xff09;post&#xff1a; 3&#xff09;axios请求配置 默认是get请求&#xff0c;如…...

SpringAOP从入门到源码分析大全,学好AOP这一篇就够了(一)

文章目录系列文档索引一、认识AOP1、AOP的引入原因2、AOP常见使用场景日志场景统计场景安防场景性能场景3、AOP概念AOP 的概念Aspect 概念&#xff08;切面&#xff09;Join point 概念&#xff08;连接点&#xff09;Pointcut 概念&#xff08;切入点&#xff09;Advice 概念&…...

【单目标优化算法】樽海鞘群算法(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…...

手把手教你,解决C盘分区不足,C盘怎么扩大磁盘分区

由于在磁盘分区中&#xff0c;C盘是很重要的一个磁盘&#xff0c;为了保证C盘有足够的磁盘分区。其中扩大C盘分区很常见的操作之一。那么&#xff0c;C盘怎么扩大磁盘分区&#xff1f;在本文中&#xff0c;易我小编将全面地讲解C盘合并分区的方法。 一、为什么C盘怎么扩大磁盘分…...

Ethernet-APL——过程自动化的新黄金标准

| Ethernet-APL为终客户和设备制造商带来益处 Ethernet-APL&#xff08;Advanced Physical Layer&#xff0c;高级物理层&#xff09;是一种两线制以太网物理层&#xff0c;它使用了由IEEE 802.3cg所定义的10BASE-T1L&#xff0c;并采用了新的工艺制造规定&#xff0c;因此构成…...

LVGL Styles

LVGL StylesGet started按钮添加标签按钮添加风格滑动条值显示StylesSize stylesBackground stylesBorder stylesOutline stylesShadow stylesImage stylesArc stylesText stylesLine stylesGet started 按钮添加标签 /*** brief 按钮事件回调函数* param e */ void btn_eve…...

扬帆优配|联通港股创近两年新高!A股资源类股爆发,食品饮料领跌

今日上午&#xff0c;A股商场和港股商场均现较大起伏震动&#xff0c;临近上午收盘出现一波跳水&#xff0c;不过&#xff0c;到上午收盘&#xff0c;上证指数仍微涨0.10%&#xff0c;煤炭等资源类板块明显上涨。 港股商场上午走弱&#xff0c;科技股领跌。 沪指微涨0.10%资源…...

Win10+VS2019+Qt5.15.2下编译QCAD

一&#xff1a;官方说法&#xff1a;WindowsDownload and install a C compiler, for example:Visual Studio C Express or Visual Studio CommunityDownload and install Qt from qt.io (see supported platforms):Download for example the online installer fileqt-opensour…...

【微信小程序】原生微信小程序ts模板下引入vant weapp

之前一直是在普通项目下使用 vant weapp&#xff0c;这不最近学了ts&#xff0c;使用微信开发工具的tsless初始化项目&#xff0c;再引入 vant 时踩了好久坑&#xff0c;特来记录一下 前言 本文章适合微信开发工具的ts项目&#xff0c;指的是项目目录结构如下图 总结 从上图…...

Puppeteer之Pyppeteer——自动登录Gmail(6)

前言 本文是该专栏的第6篇,结合项目案例让你熟练使用pyppeteer,后面会持续分享Pyppeteer的干货知识,记得关注。 有同学留言,使用selenium自动登录gmail邮箱,被Google识别为机器人怎么办?出现这个问题,主要在于Google可以检测出selenium的控件,无论你怎么加入规避方法,…...

python 绘图 —— 绘制从顶部向底部显示的柱形图[ax.bar()]

python 绘图 —— 绘制从顶部向底部显示的柱形图[ax.bar()] 效果图如下所示&#xff1a; 就是这个样子&#xff0c;一般比较少见将柱形图从上往下绘制的。可能是会为了更好的展示数据对比结果吧。这里绘图的主要思路如下&#xff1a; 利用ax.twinx()这个函数生成一个新的x轴…...

历年中国科学技术大学计算机保研上机真题

2025中国科学技术大学计算机保研上机真题 2024中国科学技术大学计算机保研上机真题 2023中国科学技术大学计算机保研上机真题 在线测评链接&#xff1a;https://pgcode.cn/school?classification1 拆分数字 题目描述 给定一个数字&#xff0c;拆分成若干个数字之和&#xff…...

WIN11+eclipse搭建java开发环境

环境搭建&#xff08;WIN11ECLIPSE&#xff09; 安装JAVA JDK https://www.oracle.com/cn/java/technologies/downloads/#jdk24安装eclipse https://www.eclipse.org/downloads/ 注意&#xff1a;eclipse下载时指定aliyun的软件源&#xff0c;后面安装会快一些。默认是jp汉化e…...

PHP HTTP 完全指南

PHP HTTP 完全指南 引言 PHP 作为一种流行的服务器端脚本语言,广泛应用于各种Web开发项目中。HTTP(超文本传输协议)是互联网上应用最为广泛的网络协议之一,用于在Web服务器和客户端之间传输数据。本文将详细介绍 PHP 在 HTTP 通信中的应用,帮助开发者更好地理解和利用 P…...

Kubernetes资源申请沾满但是实际的资源占用并不多,是怎么回事?

Kubernetes资源申请沾满但是实际的资源占用并不多是Kubernetes资源管理中的一个常见误解。 K8s资源管理机制 资源请求(Requests) vs 实际使用量 从你的截图可以看到&#xff1a; K8s节点资源状态&#xff08;第一张图&#xff09;&#xff1a; CPU请求量&#xff1a;13795…...

Python打卡训练营学习记录Day41

DAY 41 简单CNN 知识回顾 数据增强卷积神经网络定义的写法batch归一化&#xff1a;调整一个批次的分布&#xff0c;常用与图像数据特征图&#xff1a;只有卷积操作输出的才叫特征图调度器&#xff1a;直接修改基础学习率 卷积操作常见流程如下&#xff1a; 1. 输入 → 卷积层 →…...

【数据结构】字符串操作整理(C++)

1. 字符串长度与容量 size() / length() 定义&#xff1a;返回字符串的当前长度&#xff08;字符数&#xff09;。用法&#xff1a; string s "hello"; cout << s.size(); // 输出&#xff1a;5提示&#xff1a;size() 和 length() 功能完全相同&#xff0…...

STM32入门教程——LED闪烁LED流水灯蜂鸣器

前言 本教材基于B站江协科技课程整理&#xff0c;适合有C语言基础、刚接触STM32的新手。它梳理了STM32核心知识点&#xff0c;帮助大家把C语言知识应用到STM32开发中&#xff0c;更高效地开启STM32学习之旅。 一、硬件电路搭建与工程配置 电路连接要点 LED 闪烁 / 流水灯&…...

MCP Server的五种主流架构:从原理到实践的深度解析

&#x1f525;「炎码工坊」技术弹药已装填&#xff01; 点击关注 → 解锁工业级干货【工具实测|项目避坑|源码燃烧指南】 在AI大模型与外部数据交互的浪潮中&#xff0c;MCP Server&#xff08;Model Context Protocol Server&#xff09;已成为连接模型与现实世界的桥梁。本文…...

基于RK3588的智慧农场系统开发|RS485总线|华为云IOT|node-red|MQTT

一、硬件连接流程 本次采用的是 总线型拓扑&#xff1a;所有设备并联到两根 RS485 总线上&#xff08;A 和 B-&#xff09; 二、通信协议配置 1. 主从通信模式 RS485 是半双工&#xff1a;同一时间只能有一个设备发送数据主从架构&#xff1a;通常一个主设备&#xff08;…...

【前端】【Vue3】vue3性能优化总结

第一章 Vue3性能优化概述 1.1 Vue3性能提升背景 1.1.1 Vue2性能瓶颈分析 1. 响应式原理的局限性 Object.defineProperty 的缺陷&#xff1a;Vue2 使用 Object.defineProperty 来实现响应式。这个方法只能劫持对象的属性&#xff0c;对于新增或删除属性无法自动响应。例如&a…...