C#使用TimeSpan對(duì)象實(shí)現(xiàn)獲取時(shí)間間隔
一、TimeSpan基礎(chǔ)知識(shí)
使用TimeSpan對(duì)象可以方便地獲取兩個(gè)時(shí)間段的間隔。兩個(gè)時(shí)間信息相減后會(huì)得到一個(gè)TimeSpan對(duì)象,該TimeSpan對(duì)象代表時(shí)間間隔,可以通過(guò)TimeSpan對(duì)象的Days、Hours、Minutes、Seconds、Milliseconds屬性分別得到間隔的天、時(shí)、分、秒、毫秒數(shù)。
TimeSpan對(duì)象代表兩個(gè)時(shí)間段的間隔或跨度,使用TimeSpan對(duì)象可以方便地獲取兩個(gè)時(shí)間段的間隔。兩個(gè)時(shí)間信息相減后會(huì)得到一個(gè)TimeSpan對(duì)象,該TimeSpan對(duì)象代表時(shí)間間隔,可以通過(guò)TimeSpan對(duì)象的Days、Hours、Minutes、Seconds、Milliseconds屬性分別得到間隔的天、時(shí)、分、秒、毫秒數(shù)。
可以調(diào)用TimeSpan的Add方法,得到兩個(gè)TimeSpan持續(xù)時(shí)間的和。
二、實(shí)例
使用TimeSpan對(duì)象獲取時(shí)間間隔。
// 使用TimeSpan對(duì)象獲取時(shí)間間隔
namespace _064
{
public partial class Form1 : Form
{
private GroupBox? groupBox1;
private GroupBox? groupBox2;
private GroupBox? groupBox3;
private Button? button1;
private Button? button2;
private Button? button3;
private Label? label1;
private Label? label2;
private Label? label3;
public DateTime DateTime_First,DateTime_Second;
public Form1()
{
InitializeComponent();
Load += Form1_Load;
}
private void Form1_Load(object? sender, EventArgs e)
{
//
// button1
//
button1 = new Button
{
Location = new Point(108, 22),
Name = "button1",
Size = new Size(106, 23),
TabIndex = 0,
Text = "第一次獲取時(shí)間",
UseVisualStyleBackColor = true
};
button1.Click += Button1_Click;
//
// button2
//
button2 = new Button
{
Location = new Point(108, 22),
Name = "button2",
Size = new Size(108, 23),
TabIndex = 0,
Text = "第二次獲取時(shí)間",
UseVisualStyleBackColor = true
};
button2.Click += Button2_Click;
//
// button3
//
button3 = new Button
{
Location = new Point(106, 22),
Name = "button3",
Size = new Size(108, 23),
TabIndex = 0,
Text = "計(jì)算時(shí)間間隔",
UseVisualStyleBackColor = true
};
button3.Click += Button3_Click;
//
// label1
//
label1 = new Label
{
AutoSize = true,
Location = new Point(26, 47),
Name = "label1",
Size = new Size(43, 17),
TabIndex = 1,
Text = "label1"
};
//
// label2
//
label2 = new Label
{
AutoSize = true,
Location = new Point(26, 50),
Name = "label2",
Size = new Size(43, 17),
TabIndex = 1,
Text = "label2"
};
//
// label3
//
label3 = new Label
{
AutoSize = true,
Location = new Point(71, 51),
Name = "label3",
Size = new Size(43, 17),
TabIndex = 1,
Text = "label3"
};
//
// groupBox1
//
groupBox1 = new GroupBox
{
Location = new Point(12, 12),
Name = "groupBox1",
Size = new Size(315, 75),
TabIndex = 0,
TabStop = false,
Text = "第一次獲取時(shí)間"
};
groupBox1.Controls.Add(label1);
groupBox1.Controls.Add(button1);
groupBox1.SuspendLayout();
//
// groupBox2
//
groupBox2 = new GroupBox
{
Location = new Point(12, 94),
Name = "groupBox2",
Size = new Size(315, 75),
TabIndex = 1,
TabStop = false,
Text = "第二次獲取時(shí)間"
};
groupBox2.Controls.Add(label2);
groupBox2.Controls.Add(button2);
groupBox2.SuspendLayout();
//
// groupBox3
//
groupBox3 = new GroupBox
{
Location = new Point(12, 176),
Name = "groupBox3",
Size = new Size(315, 75),
TabIndex = 2,
TabStop = false,
Text = "時(shí)間間隔"
};
groupBox3.Controls.Add(label3);
groupBox3.Controls.Add(button3);
groupBox3.SuspendLayout();
//
// Form1
//
AutoScaleDimensions = new SizeF(7F, 17F);
AutoScaleMode = AutoScaleMode.Font;
ClientSize = new Size(339, 263);
Controls.Add(groupBox3);
Controls.Add(groupBox2);
Controls.Add(groupBox1);
Name = "Form1";
StartPosition = FormStartPosition.CenterScreen;
Text = "使用TimeSpan對(duì)象獲取時(shí)間間隔";
groupBox1.ResumeLayout(false);
groupBox1.PerformLayout();
groupBox2.ResumeLayout(false);
groupBox2.PerformLayout();
groupBox3.ResumeLayout(false);
groupBox3.PerformLayout();
}
/// <summary>
/// 第一次獲取時(shí)間
/// </summary>
private void Button1_Click(object? sender, EventArgs e)
{
DateTime_First = DateTime.Now;//為時(shí)間字段賦值
label1!.Text = "系統(tǒng)時(shí)間:" + DateTime_First.ToString(
"yyyy年M月d日 H時(shí)m分s秒 fff毫秒");
}
/// <summary>
/// 第二次獲取時(shí)間
/// </summary>
private void Button2_Click(object? sender, EventArgs e)
{
DateTime_Second = DateTime.Now;//為時(shí)間字段賦值
label2!.Text = "系統(tǒng)時(shí)間:" + DateTime_Second.ToString(
"yyyy年M月d日 H時(shí)m分s秒 fff毫秒");
}
/// <summary>
/// 計(jì)算時(shí)間間隔
/// </summary>
private void Button3_Click(object? sender, EventArgs e)
{
TimeSpan timespan =//計(jì)算兩個(gè)時(shí)間的時(shí)間間隔
DateTime_First > DateTime_Second ?
DateTime_First - DateTime_Second :
DateTime_Second - DateTime_First;
label3!.Text = string.Format("間隔時(shí)間:{0}天{1}時(shí){2}分{3}秒 {4}毫秒",
timespan.Days, timespan.Hours,
timespan.Minutes, timespan.Seconds,
timespan.Milliseconds);
}
}
}結(jié)果如下


到此這篇關(guān)于C#使用TimeSpan對(duì)象實(shí)現(xiàn)獲取時(shí)間間隔的文章就介紹到這了,更多相關(guān)C# TimeSpan獲取時(shí)間間隔內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
基于C#制作一個(gè)飛機(jī)大戰(zhàn)小游戲的全過(guò)程
飛機(jī)大戰(zhàn)小游戲詳細(xì)大家都不陌生,下面這篇文章主要給大家介紹了關(guān)于基于C#制作一個(gè)飛機(jī)大戰(zhàn)小游戲的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-02-02
C# Mutex實(shí)現(xiàn)線程與進(jìn)程同步的技術(shù)指南
在多線程或多進(jìn)程程序中,如果多個(gè)線程/程序同時(shí)訪問(wèn)同一資源,很容易導(dǎo)致數(shù)據(jù)沖突或程序異常,為了解決這種問(wèn)題,C# 提供了強(qiáng)大的同步原語(yǔ)Mutex,下面我們就來(lái)看看它的具體使用吧2025-11-11
C#實(shí)現(xiàn)將文件轉(zhuǎn)換為XML的方法
這篇文章主要介紹了C#實(shí)現(xiàn)將文件轉(zhuǎn)換為XML的方法,實(shí)例分析了office文件與xml的相互轉(zhuǎn)換技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-12-12
C#如何在窗體程序中操作數(shù)據(jù)庫(kù)數(shù)據(jù)
這篇文章主要介紹了C#如何在窗體程序中操作數(shù)據(jù)庫(kù)數(shù)據(jù),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-04-04
WinFrom中l(wèi)abel背景透明的實(shí)現(xiàn)方法
這篇文章主要介紹了WinFrom中l(wèi)abel背景透明的實(shí)現(xiàn)方法,方法簡(jiǎn)單實(shí)用,是C#程序設(shè)計(jì)中非常實(shí)用的技巧,需要的朋友可以參考下2014-09-09
C#?wpf?通過(guò)HwndHost渲染視頻的實(shí)現(xiàn)方法
日常開(kāi)發(fā)中,特別是音視頻開(kāi)發(fā),需要在界面上渲染視頻,比如制作一個(gè)播放器、或者視頻編輯工具、以及視頻會(huì)議客戶端。通常拿到的是像素格式數(shù)據(jù),此時(shí)需要渲染到wpf窗口上就需要一定的方法,本文介紹一種通過(guò)hwnd渲染的方法,控件既能提供hwnd又能嵌入wpf窗口里2021-11-11

