程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 更多關於編程 >> C#時間操作類 時間計算等

C#時間操作類 時間計算等

編輯:更多關於編程

       一個C#時間工具類,可用於時間計算,比如根據出生年月實現生日提醒、兩個日期天數比較、根據英文的星期幾返回中文的星期幾、計算兩個時間的差值,返回的是x天x小時x分鐘x秒、時間相差值、根據時間返回幾個月前,幾天前,幾小時前,幾分鐘前以及幾秒前,現在用不到的話,先收藏吧,代碼如下:

      001using System;

      002using System.Collections.Generic;

      003using System.Linq;

      004using System.Text;

      005namespace CLB.Utility.CharTools

      006{

      007 public static class DateTimeHelper

      008 {

      009 ////

      010 /// 根據時間返回幾個月前,幾天前,幾小時前,幾分鐘前以及幾秒前

      011 ///

      012 ///

      013 ///

      014 public static string DateStringFromNow(DateTime dt)

      015 {

      016 TimeSpan span = DateTime.Now - dt;

      017 if (span.TotalDays > 60)

      018 {

      019 return dt.ToShortDateString();

      020 }

      021 else if (span.TotalDays > 30)

      022 {

      023 return "1個月前";

      024 }

      025 else if (span.TotalDays > 14)

      026 {

      027 return "2周前";

      028 }

      029 else if (span.TotalDays > 7)

      030 {

      031 return "1周前";

      032 }

      033 else if (span.TotalDays > 1)

      034 {

      035 return string.Format("{0}天前", (int)Math.Floor(span.TotalDays));

      036 }

      037 else if (span.TotalHours > 1)

      038 {

      039 return string.Format("{0}小時前", (int)Math.Floor(span.TotalHours));

      040 }

      041 else if (span.TotalMinutes > 1)

      042 {

      043 return string.Format("{0}分鐘前", (int)Math.Floor(span.TotalMinutes));

      044 }

      045 else if (span.TotalSeconds >= 1)

      046 {

      047 return string.Format("{0}秒前", (int)Math.Floor(span.TotalSeconds));

      048 }

      049 else

      050 {

      051 return "1秒前";

      052 }

      053 }

      054 ///

      055 /// 時間相差值,返回時間差

      056 /// 調用時,isTotal為true時,返回的時帶小數的天數,否則返回的是整數

      057 ///

      058 ///

      059 ///

      060 ///

      061 ///

      062 public static string DateDiff(DateTime DateTime1, DateTime DateTime2, bool isTotal)

      063 {

      064 TimeSpan ts = DateTime2 - DateTime1;

      065 if (isTotal)

      066 //帶小數的天數,比如1天12小時結果就是1.5

      067 return ts.TotalDays.ToString();

      068 else

      069 //整數天數,1天12小時或者1天20小時結果都是1

      070 return ts.Days.ToString();

      071 }

      072 ///

      073 /// 計算兩個時間的差值,返回的是x天x小時x分鐘x秒

      074 ///

      075 ///

      076 ///

      077 ///

      078 public static string DateDiff(DateTime DateTime1, DateTime DateTime2)

      079 {

      080 string dateDiff = null;

      081 TimeSpan ts1 = new TimeSpan(DateTime1.Ticks);

      082 TimeSpan ts2 = new TimeSpan(DateTime2.Ticks);

      083 TimeSpan ts = ts1.Subtract(ts2).Duration();

      084 //TimeSpan ts=ts1.Add(ts2).Duration();

      085 dateDiff = ts.Days.ToString() + "天" + ts.Hours.ToString() + "小時" + ts.Minutes.ToString() + "分鐘"+ ts.Seconds.ToString() + "秒";

      086 return dateDiff;

      087 }

      088 ///

      089 /// 根據英文的星期幾返回中文的星期幾

      090 /// 如WhichDay("Sunday"),返回星期日

      091 ///

      092 ///

      093 ///

      094 public static string WhichDay(string enWeek)

      095 {

      096 switch (enWeek.Trim())

      097 {

      098 case "Sunday":

      099 return "星期日";

      100 case "Monday":

      101 return "星期一";

      102 case "Tuesday":

      103 return "星期二";

      104 case "Wednesday":

      105 return "星期三";

      106 case "Thursday":

      107 return "星期四";

      108 case "Friday":

      109 return "星期五";

      110 case "Saturday":

      111 return "星期六";

      112 default:

      113 return enWeek;

      114 }

      115 }

      116 ///

      117 /// 日期比較

      118 ///

      119 /// 當前日期

      120 /// 輸入日期

      121 /// 比較天數

      122 /// 大於天數返回true,小於返回false

      123 public static bool CompareDate(string today, string writeDate, int n)

      124 {

      125 DateTime Today = Convert.ToDateTime(today);

      126 DateTime WriteDate = Convert.ToDateTime(writeDate);

      127 WriteDate = WriteDate.AddDays(n);

      128 if (Today >= WriteDate)

      129 return false;

      130 else

      131 return true;

      132 }

      133 ///

      134 /// 根據出生年月進行生日提醒

      135 ///

      136 ///

      137 ///

      138 public static string GetBirthdayTip(DateTime birthday)

      139 {

      140 DateTime now = DateTime.Now;

      141 //TimeSpan span = DateTime.Now - birthday;

      142 int nowMonth = now.Month;

      143 int birtMonth = birthday.Month;

      144 if (nowMonth == 12 && birtMonth == 1)

      145 return string.Format("下月{0}號", birthday.Day);

      146 if (nowMonth == 1 && birtMonth == 12)

      147 return string.Format("上月{0}號", birthday.Day);

      148 int months = now.Month - birthday.Month;

      149 //int days = now.Day - birthday.Day;

      150 if (months == 1)

      151 return string.Format("上月{0}號", birthday.Day);

      152 else if (months == -1)

      153 return string.Format("下月{0}號", birthday.Day);

      154 else if (months == 0)

      155 {

      156 if (now.Day == birthday.Day)

      157 return "今天";

      158 return string.Format("本月{0}號", birthday.Day);

      159 }

      160 else if (months > 1)

      161 return string.Format("已過{0}月", months);

      162 else

      163 return string.Format("{0}月{1}日", birthday.Month, birthday.Day);

      164 }

      165 }

      166}

    1. 上一頁:
    2. 下一頁:
    Copyright © 程式師世界 All Rights Reserved