C# System.Threading.Timer 案例(一)
环境 : NET Framework 4.5.2
C# System.Threading.Timer
winform 版 案例
按F7,或右击,查看代码
using Timer = System.Threading.Timer;//引用
写一个时间控制的方法
代码:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using Timer = System.Threading.Timer;//引用
namespace TimeRefresh
{
public partial class Form1 : Form
{
private Timer _tTimeUI;
public Form1()
{
InitializeComponent();
_tTimeUI = new Timer(obj => TimeUI(), null, 1 * 1000, 1 * 1000);
}
public void TimeUI()
{
DateTime nowDatetime = DateTime.Now;
lbl_date.Text = GetCurrentYMD(nowDatetime);
lbl_time.Text = $"{GetCurrentHMS(nowDatetime)} {GetCurrentWeekDay(nowDatetime)}";
}
/// <summary>
/// 获取时分秒,
/// 默认是24小时制,如果hourFormat=12就是12小时,输入其他数依然是24小时
/// </summary>
/// <returns>时分秒字符串</returns>
public string GetCurrentHMS(DateTime CurrentDateTime, int hourFormat = 24, bool isRefreshTime = false)
{
if (hourFormat == 12)
{
return CurrentDateTime.ToString("hh:mm:ss");
}
else
{
return CurrentDateTime.ToString("HH:mm:ss");
}
}
/// <summary>
/// 获取年月日
/// </summary>
/// <returns>年月日字符串</returns>
public string GetCurrentYMD(DateTime CurrentDateTime, bool isRefreshTime = false)
{
return CurrentDateTime.ToString("yyyy年MM月dd日");
}
/// <summary>
/// 获取日期
/// </summary>
public string GetCurrentWeekDay(DateTime CurrentDateTime, bool isRefreshTime = false)
{
return CaculateWeekDay(CurrentDateTime.Year, CurrentDateTime.Month, CurrentDateTime.Day);
}
/// <summary>
/// 基姆拉尔森计算公式计算日期
/// </summary>
/// <param name="y">年</param>
/// <param name="m">月</param>
/// <param name="d">日</param>
/// <returns>星期几</returns>
protected string CaculateWeekDay(int y, int m, int d)
{
if (m == 1 || m == 2)
{
m += 12;
y--; //把一月和二月看成是上一年的十三月和十四月,例:如果是2004-1-10则换算成:2003-13-10来代入公式计算。
}
var week = (d + 2 * m + 3 * (m + 1) / 5 + y + y / 4 - y / 100 + y / 400) % 7;
var weekstr = "";
switch (week)
{
case 0:
weekstr = "星期一";
break;
case 1:
weekstr = "星期二";
break;
case 2:
weekstr = "星期三";
break;
case 3:
weekstr = "星期四";
break;
case 4:
weekstr = "星期五";
break;
case 5:
weekstr = "星期六";
break;
case 6:
weekstr = "星期日";
break;
}
return weekstr;
}
}
}
运行效果如下:
动态:
静态:
欢迎进qq群交流:704028989