C#用 DateAndTime.DateAdd方法和DateTime.Add(TimeSpan) 方法分别添加一段时间间隔

news2024/11/17 11:40:06

目录

一、基本方法

1.用 DateAndTime.DateAdd方法添加一段时间间隔

2.用DateTime.Add方法添加一段时间间隔

二、实例

1.实例1:用 DateAndTime.DateAdd方法

2.实例2:用DateTime.Add方法


一、基本方法

1.用 DateAndTime.DateAdd方法添加一段时间间隔

        用了DateAndTime类的DateAdd静态方法。

        返回一个 Date 值,其中包含已添加指定时间间隔的日期和时间值。

        使用DateAndTime类的DateAdd静态方法可以方便地向指定日期添加一段时间间隔。语法格式如下:

DateAndTime.DateAdd(Datelnterval interval,double Number,DateTime DateValue);

参数说明
interval:表示添加时间间隔的枚举值。
Number:表示要添加的时间间隔数,如果interval的枚举值为day,Number值为1,则向当前时间对象添加1天。
DateValue:表示当前操作的时间对象。

2.用DateTime.Add方法添加一段时间间隔

        使用DateTime的Add方法也可以向指定日期添加一段时间间隔。

        DateTime.Add方法接收一个TimeSpan对象作为参数,用于向当前DateTime中添加一段时间间隔。所以也可以使用DateTime的Add方法代替DateAdd方法实现相同的添加时间间隔的效果。

        返回一个新的 DateTime,它将指定 TimeSpan 的值添加到此实例的值上。

public DateTime Add (TimeSpan value);

参数
value    TimeSpan
正或负时间间隔。

返回
DateTime
一个对象,其值是此实例所表示的日期和时间与 value 所表示的时间间隔之和。

例外
ArgumentOutOfRangeException
生成的 DateTime 小于 DateTime.MinValue 或大于 DateTime.MaxValue。

注解
可以使用 Add 方法在单个操作中添加多种类型的时间间隔, (天、小时、分钟、秒或毫秒) 。 此方法的行为与加法运算符的行为相同。 结构 DateTime 还支持每个时间间隔的专用加法 (如 AddDays、 AddHours和 AddMinutes) 。

执行日期算术时, Add 方法会考虑闰年和一个月中的天数。

此方法不会更改此 DateTime的值。 相反,它返回一个新的 DateTime ,其值是此操作的结果。 新DateTime实例的 属性与当前实例的 属性相同。

二、实例

1.实例1:用 DateAndTime.DateAdd方法

// 用 DateAndTime.DateAdd方法添加一段时间间隔
using Microsoft.VisualBasic;

namespace _063
{
    public partial class Form1 : Form
    {
        private GroupBox? groupBox1;
        private Button? button3;
        private Button? button2;
        private Button? button1;
        private Label? label1;
        private Button? button4;
        public DateTime datetime;//定义时间字段
        public Form1()
        {
            InitializeComponent();
            Load += Form1_Load;
        }
        private void Form1_Load(object? sender, EventArgs e)
        {
            // 
            // label1
            // 
            label1 = new Label
            {
                AutoSize = true,
                Location = new Point(6, 28),
                Name = "label1",
                Size = new Size(44, 17),
                TabIndex = 0,
                Text = "时间:"
            };
            // 
            // button1
            // 
            button1 = new Button
            {
                Location = new Point(6, 133),
                Name = "button1",
                Size = new Size(75, 23),
                TabIndex = 1,
                Text = "加1分钟",
                UseVisualStyleBackColor = true
            };
            button1.Click += Button1_Click;
            // 
            // button2
            // 
            button2 = new Button
            {
                Location = new Point(98, 133),
                Name = "button2",
                Size = new Size(75, 23),
                TabIndex = 2,
                Text = "加1小时",
                UseVisualStyleBackColor = true
            };
            button2.Click += Button2_Click;
            // 
            // button3
            // 
            button3 = new Button
            {
                Location = new Point(190, 133),
                Name = "button3",
                Size = new Size(75, 23),
                TabIndex = 3,
                Text = "加1天",
                UseVisualStyleBackColor = true
            };
            button3.Click += Button3_Click;
            // 
            // button4
            // 

            button4 = new Button
            {
                Location = new Point(282, 133),
                Name = "button4",
                Size = new Size(75, 23),
                TabIndex = 4,
                Text = "减1天",
                UseVisualStyleBackColor = true
            };
            button4.Click += Button4_Click;
            // 
            // groupBox1
            // 
            groupBox1 = new GroupBox
            {
                Location = new Point(12, 12),
                Name = "groupBox1",
                Size = new Size(365, 162),
                TabIndex = 0,
                TabStop = false,
                Text = "添加时间间隔"
            };
            groupBox1.Controls.Add(button4);
            groupBox1.Controls.Add(button3);
            groupBox1.Controls.Add(button2);
            groupBox1.Controls.Add(button1);
            groupBox1.Controls.Add(label1);
            groupBox1.SuspendLayout();
            
            // 
            // Form1
            // 
            AutoScaleDimensions = new SizeF(7F, 17F);
            AutoScaleMode = AutoScaleMode.Font;
            ClientSize = new Size(389, 186);
            Controls.Add(groupBox1);
            Name = "Form1";
            StartPosition = FormStartPosition.CenterScreen;
            Text = "向指定日期添加一段时间间隔";
            groupBox1.ResumeLayout(false);
            groupBox1.PerformLayout();

            datetime = DateTime.Now;//得到系统当前时间
            label1!.Text += Environment.NewLine + datetime.ToString("  yyyy年M月d日 H时m分s秒");//显示时间信息
        }
        /// <summary>
        /// 加1分钟
        /// </summary>
        private void Button1_Click(object? sender, EventArgs e)
        {
            datetime = DateAndTime.DateAdd(DateInterval.Minute, 1, datetime);
            label1!.Text += Environment.NewLine + datetime.ToString("  yyyy年M月d日 H时m分s秒");
        }
        /// <summary>
        /// 加1小时
        /// </summary>
        private void Button2_Click(object? sender, EventArgs e)
        {
            datetime = DateAndTime.DateAdd(DateInterval.Hour, 1, datetime);
            label1!.Text += Environment.NewLine + datetime.ToString("  yyyy年M月d日 H时m分s秒");
        }
        /// <summary>
        /// 加1天
        /// </summary>
        private void Button3_Click(object? sender, EventArgs e)
        {
            datetime = DateAndTime.DateAdd(DateInterval.Day, 1, datetime);
            label1!.Text += Environment.NewLine + datetime.ToString("  yyyy年M月d日 H时m分s秒");
        }
        /// <summary>
        /// 减1天
        /// </summary>
        private void Button4_Click(object? sender, EventArgs e)
        {
            datetime = DateAndTime.DateAdd(DateInterval.Day, -1, datetime);
            label1!.Text += Environment.NewLine + datetime.ToString("  yyyy年M月d日 H时m分s秒");
        }
    }
}

 

2.实例2:用DateTime.Add方法

// Add 方法计算从此刻起 1天 (864 小时) 后是星期几
namespace _063_1
{
    internal class Program
    {
        private static void Main(string[] args)
        {
            ArgumentNullException.ThrowIfNull(args);
            
            DateTime today = DateTime.Now;
            TimeSpan duration = new(1, 0, 0, 0);
            DateTime answer = today.Add(duration);
            Console.WriteLine("{0:dd}", answer);      // Day
            Console.WriteLine("{0:ddd}", answer);    // Day name
            Console.WriteLine("{0:dddd}", answer);  // Full day name
        }
    }
}
//运行结果:
/*
27
周六
星期六

 */

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

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

相关文章

Sentinel:微服务守护神的崛起

欢迎来到我的博客&#xff0c;代码的世界里&#xff0c;每一行都是一个故事 Sentinel&#xff1a;微服务守护神的崛起 前言Sentinel简介&#xff1a;微服务流控的新宠Sentinel工作原理 前言 想象一下你正在主持一场盛大的马拉松比赛&#xff0c;参赛者如潮水般汇聚&#xff0c…

linux中配置文件目录为什么用etc来命名

在早期的 Unix 系统中&#xff0c;/etc 目录的名称确实来源于单词 “etcetera” 的缩写&#xff0c;最初意味着 “其他”&#xff0c;用来存放杂项或者不属于其他特定目录的文件。然而&#xff0c;随着时间的推移&#xff0c;/etc 目录的用途逐渐演变并专门化。 在现代的 Linux…

husky结合commitlint审查commit信息

commintlint是一个npm包用来规范化我们的commit信息&#xff0c;当然这个行为的操作时期是在git的commit-msg生命周期期间&#xff0c;这一点当然是有husky来控制&#xff0c;需要注意的是commit-msg作为一个git生命周期会被git commit和git merge行为唤醒&#xff0c;并且可以…

C++版QT:分割窗口

目录 mainwindow.h mainwindow.cpp main.cpp Qt的分割窗口功能允许用户将一个窗口分割成多个区域&#xff0c;每个区域可以独立地显示不同的内容。这种功能在许多应用程序中非常有用&#xff0c;例如编辑器、浏览器和IDE等。 理解Qt的分割窗口&#xff0c;需要从以下几个方面…

BOSS 直聘:日增10亿数据的历史库,如何通过OceanBase节省70%存储成本?

BOSS 直聘是在全球范围内首创互联网“直聘”模式的在线招聘产品&#xff0c;目前已经成为了中国最大的招聘平台。本文谈到的 BOSS 直聘的业务场景主要是通过数据库对招聘过程中的聊天记录信息进行存储&#xff0c;数据量极大&#xff0c;且每天都有 5 亿到 10 亿的增量数据。和…

蓝桥杯省赛无忧 编程13 肖恩的投球游戏

#include <iostream> #include <vector> using namespace std; int main() {int n, q;cin >> n >> q;vector<int> a(n 1);vector<int> diff(n 2, 0); // 初始化差分数组// 读取初始球数&#xff0c;构建差分数组for (int i 1; i < …

JVM-字节码应用

一、字节码的应用远超你的想象 二、ASM介绍与读取字节码实战 用CoreAPI解析和TreeAPI都能做字节码解析&#xff0c;区别&#xff0c;TreeAPI必须读取完整字节码信息&#xff0c;才能做解析。 下面代码&#xff0c;使用CoreAPI做解析&#xff1a; package asm;public class MyM…

牛客NC16640纪念品分组(C++)

题目链接 实现方法 本题为简单的贪心问题。 将所有纪念品价值排序&#xff1b;使用双指针判断最大和最小的价值之和是否小于上限&#xff0c;若小于上限则取两个&#xff0c;否则取价值较大的一个物品&#xff1b;记录未分组的纪念品数量&#xff0c;若数量为0则跳出循环&…

《PCI Express体系结构导读》随记 —— 第I篇 第3章 PCI总线的数据交换(5)

接前一篇文章&#xff1a;《PCI Express体系结构导读》随记 —— 第I篇 第3章 PCI总线的数据交换&#xff08;4&#xff09; 3.2 PCI设备的数据传递 PCI设备的数据传递使用地址译码方式&#xff0c;当一个存储器读写总线事务到达PCI总线时&#xff0c;在这条总线上的所有PCI设…

Java入门高频考查基础知识7-深入挖掘Java集合框架的奇幻世界2(39题2.8万字参考答案)

Java 集合是 Java 编程中至关重要的组成部分&#xff0c;它为开发者提供了丰富、灵活、高效的数据结构和算法。无论是初学者还是有经验的开发者&#xff0c;在使用 Java 进行编程时都会频繁地接触到集合框架。这篇文章将深入探讨 Java 集合的重要性&#xff0c;以及为什么它对于…

写静态页面——魅族声学_前端页面练习

1、效果: 1、html代码: <!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>魅族声学</titl…

STM32单片机项目之多功能智能小车硬件设计

基于STM32单片机多功能智能小车功能说明&#xff1a; TFTLCD显示按键LVGL&#xff08;菜单、小车工作模式选择、设置&#xff09;手机蓝牙遥控模式射频手柄遥控模式5路红外寻迹模式超声波避障模式语音播报低功耗控制 硬件原理图设计 单片机最小系统&#xff1a; 由于要使用…

初识MQRabbitMQ快速入门

一、同步和异步通讯 微服务间通讯有同步和异步两种方式&#xff1a; 同步通讯&#xff1a;就像打电话&#xff0c;需要实时响应。 异步通讯&#xff1a;就像发邮件&#xff0c;不需要马上回复。 两种方式各有优劣&#xff0c;打电话可以立即得到响应&#xff0c;但是你却不能…

项目中日历管理学习使用

一些项目中会有日历或日期设置&#xff0c;最基本的会显示工作日&#xff0c;休息日&#xff0c;节假日等等&#xff0c;下面就是基于项目中的日历管理功能&#xff0c;要显示工作日&#xff0c;休息日&#xff0c;节假日 效果图 获取国家法定节假日工具类 public class Holi…

2024年,我与CSDN的邂逅之旅:一段燃烧激情、成就梦想的博客专家之路

文章目录 初入CSDN知识分享的本质什么有用学什么 成为博客专家的经历成为博客专家有什么好处实际好处隐形好处 今天获得了CSDN认证的博客专家&#xff0c;感觉很开心~分享一下这个始末。分享一下我和CSDN的5年邂逅。 初入CSDN 进入CSDN已经五年了&#xff0c;大一开始写博客&a…

Prometheus 架构全面解析

在本指南中&#xff0c;我们将详细介绍 Prometheus 架构。 Prometheus 是一个用 Golang 编写的开源监控和告警系统&#xff0c;能够收集和处理来自各种目标的指标。您还可以查询、查看、分析指标&#xff0c;并根据阈值收到警报。 此外&#xff0c;在当今世界&#xff0c;可观…

21.云原生之GitLab pipline语法实战(CI基础)

云原生专栏大纲 文章目录 gitlab-ci.yml 介绍GitLab中语法检测gitlab-ci.yml 语法job定义作业before_script和after_scriptstages定义阶段tages指定runnerallow_failure运行失败when控制作业运行retry重试timeout超时parallel并行作业only & exceptrulescache 缓存cache:p…

Windows10系统任务栏变小怎么处理

首先&#xff0c;邮件任务栏&#xff0c;点击任务栏设置&#xff1b; 然后&#xff0c;将小任务栏 使能关闭&#xff08;图中为打开状态&#xff09;&#xff1b; 或者&#xff0c;你也可以取消锁定任务栏&#xff0c;然后在任务栏的边缘&#xff0c;进行上下拉拖动&#xff…

记签名机制

签名过程&#xff1a; 首先将数据源通过摘要算法获取到数字摘要 对数字摘要用私钥进行加密得到签名 将原始消息 以及签名发送给消息接收方 接收方用公钥解密得到数字摘要 用同样的摘要算法将原始消息进行计算 比较得到的数字摘要与解密后的是否一致 Android学习笔记——Androi…

Android源码设计模式解析与实战第2版笔记(二)

第二章 应用最广的模式 — 单例模式 单例模式的定义 确保某一个类只有一个实例&#xff0c;而且自行实例化并向整个系统提供这个实例。 单例模式的使用场景 确保某个类有且只有一个对象的场景&#xff0c;避免产生多个对象消耗过多的资源&#xff0c;或者某种类型的对象只应…