萬盛學電腦網

 萬盛學電腦網 >> 網絡編程 >> 編程語言綜合 >> 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}

copyright © 萬盛學電腦網 all rights reserved