最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

asp.net(C#)实现功能强大的时间日期处理类完整实例

来源:动视网 责编:小采 时间:2020-11-27 22:36:52
文档

asp.net(C#)实现功能强大的时间日期处理类完整实例

asp.net(C#)实现功能强大的时间日期处理类完整实例:本文实例讲述了asp.net(C#)实现功能强大的时间日期处理类。分享给大家供大家参考,具体如下: using System; using System.Data; using System.Configuration; using System.Web; using System.Web.Security; usin
推荐度:
导读asp.net(C#)实现功能强大的时间日期处理类完整实例:本文实例讲述了asp.net(C#)实现功能强大的时间日期处理类。分享给大家供大家参考,具体如下: using System; using System.Data; using System.Configuration; using System.Web; using System.Web.Security; usin

本文实例讲述了asp.net(C#)实现功能强大的时间日期处理类。分享给大家供大家参考,具体如下:

using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
namespace MSCL
{
 /// <summary>
 /// 时间日期处理类
 /// </summary>
 public class DateTimeHelper
 {
 #region 返回本年有多少天
 /// <summary>返回本年有多少天</summary>
 /// <param name="iYear">年份</param>
 /// <returns>本年的天数</returns>
 public static int GetDaysOfYear(int iYear)
 {
 int cnt = 0;
 if (IsRuYear(iYear))
 {
 //闰年多 1 天 即:2 月为 29 天
 cnt = 366;
 }
 else
 {
 //--非闰年少1天 即:2 月为 28 天
 cnt = 365;
 }
 return cnt;
 }
 #endregion
 #region 返回本年有多少天
 /// <summary>本年有多少天</summary>
 /// <param name="dt">日期</param>
 /// <returns>本天在当年的天数</returns>
 public static int GetDaysOfYear(DateTime idt)
 {
 int n;
 //取得传入参数的年份部分,用来判断是否是闰年
 n = idt.Year;
 if (IsRuYear(n))
 {
 //闰年多 1 天 即:2 月为 29 天
 return 366;
 }
 else
 {
 //--非闰年少1天 即:2 月为 28 天
 return 365;
 }
 }
 #endregion
 #region 返回本月有多少天
 /// <summary>本月有多少天</summary>
 /// <param name="iYear">年</param>
 /// <param name="Month">月</param>
 /// <returns>天数</returns>
 public static int GetDaysOfMonth(int iYear, int Month)
 {
 int days = 0;
 switch (Month)
 {
 case 1:
 days = 31;
 break;
 case 2:
 if (IsRuYear(iYear))
 {
 //闰年多 1 天 即:2 月为 29 天
 days = 29;
 }
 else
 {
 //--非闰年少1天 即:2 月为 28 天
 days = 28;
 }
 break;
 case 3:
 days = 31;
 break;
 case 4:
 days = 30;
 break;
 case 5:
 days = 31;
 break;
 case 6:
 days = 30;
 break;
 case 7:
 days = 31;
 break;
 case 8:
 days = 31;
 break;
 case 9:
 days = 30;
 break;
 case 10:
 days = 31;
 break;
 case 11:
 days = 30;
 break;
 case 12:
 days = 31;
 break;
 }
 return days;
 }
 #endregion
 #region 返回本月有多少天
 /// <summary>本月有多少天</summary>
 /// <param name="dt">日期</param>
 /// <returns>天数</returns>
 public static int GetDaysOfMonth(DateTime dt)
 {
 //--------------------------------//
 //--从dt中取得当前的年,月信息 --//
 //--------------------------------//
 int year, month, days = 0;
 year = dt.Year;
 month = dt.Month;
 //--利用年月信息,得到当前月的天数信息。
 switch (month)
 {
 case 1:
 days = 31;
 break;
 case 2:
 if (IsRuYear(year))
 {
 //闰年多 1 天 即:2 月为 29 天
 days = 29;
 }
 else
 {
 //--非闰年少1天 即:2 月为 28 天
 days = 28;
 }
 break;
 case 3:
 days = 31;
 break;
 case 4:
 days = 30;
 break;
 case 5:
 days = 31;
 break;
 case 6:
 days = 30;
 break;
 case 7:
 days = 31;
 break;
 case 8:
 days = 31;
 break;
 case 9:
 days = 30;
 break;
 case 10:
 days = 31;
 break;
 case 11:
 days = 30;
 break;
 case 12:
 days = 31;
 break;
 }
 return days;
 }
 #endregion
 #region 返回当前日期的星期名称
 /// <summary>返回当前日期的星期名称</summary>
 /// <param name="dt">日期</param>
 /// <returns>星期名称</returns>
 public static string GetWeekNameOfDay(DateTime idt)
 {
 string dt, week = "";
 dt = idt.DayOfWeek.ToString();
 switch (dt)
 {
 case "Mondy":
 week = "星期一";
 break;
 case "Tuesday":
 week = "星期二";
 break;
 case "Wednesday":
 week = "星期三";
 break;
 case "Thursday":
 week = "星期四";
 break;
 case "Friday":
 week = "星期五";
 break;
 case "Saturday":
 week = "星期六";
 break;
 case "Sunday":
 week = "星期日";
 break;
 }
 return week;
 }
 #endregion
 #region 返回当前日期的星期编号
 /// <summary>返回当前日期的星期编号</summary>
 /// <param name="dt">日期</param>
 /// <returns>星期数字编号</returns>
 public static string GetWeekNumberOfDay(DateTime idt)
 {
 string dt, week = "";
 dt = idt.DayOfWeek.ToString();
 switch (dt)
 {
 case "Mondy":
 week = "1";
 break;
 case "Tuesday":
 week = "2";
 break;
 case "Wednesday":
 week = "3";
 break;
 case "Thursday":
 week = "4";
 break;
 case "Friday":
 week = "5";
 break;
 case "Saturday":
 week = "6";
 break;
 case "Sunday":
 week = "7";
 break;
 }
 return week;
 }
 #endregion
 #region 判断当前日期所属的年份是否是闰年,私有函数
 /// <summary>判断当前日期所属的年份是否是闰年,私有函数</summary>
 /// <param name="dt">日期</param>
 /// <returns>是闰年:True ,不是闰年:False</returns>
 private static bool IsRuYear(DateTime idt)
 {
 //形式参数为日期类型
 //例如:2003-12-12
 int n;
 n = idt.Year;
 if ((n % 400 == 0) || (n % 4 == 0 && n % 100 != 0))
 {
 return true;
 }
 else
 {
 return false;
 }
 }
 #endregion
 #region 判断当前年份是否是闰年,私有函数
 /// <summary>判断当前年份是否是闰年,私有函数</summary>
 /// <param name="dt">年份</param>
 /// <returns>是闰年:True ,不是闰年:False</returns>
 private static bool IsRuYear(int iYear)
 {
 //形式参数为年份
 //例如:2003
 int n;
 n = iYear;
 if ((n % 400 == 0) || (n % 4 == 0 && n % 100 != 0))
 {
 return true;
 }
 else
 {
 return false;
 }
 }
 #endregion
 #region 将输入的字符串转化为日期。如果字符串的格式非法,则返回当前日期
 /// <summary>
 /// 将输入的字符串转化为日期。如果字符串的格式非法,则返回当前日期。
 /// </summary>
 /// <param name="strInput">输入字符串</param>
 /// <returns>日期对象</returns>
 public static DateTime ConvertStringToDate(string strInput)
 {
 DateTime oDateTime;
 try
 {
 oDateTime = DateTime.Parse(strInput);
 }
 catch (Exception)
 {
 oDateTime = DateTime.Today;
 }
 return oDateTime;
 }
 #endregion
 #region 将日期对象转化为格式字符串
 /// <summary>
 /// 将日期对象转化为格式字符串
 /// </summary>
 /// <param name="oDateTime">日期对象</param>
 /// <param name="strFormat">
 /// 格式:
 /// "SHORTDATE"===短日期
 /// "LONGDATE"==长日期
 /// 其它====自定义格式
 /// </param>
 /// <returns>日期字符串</returns>
 public static string ConvertDateToString(DateTime oDateTime, string strFormat)
 {
 string strDate = "";
 try
 {
 switch (strFormat.ToUpper())
 {
 case "SHORTDATE":
 strDate = oDateTime.ToShortDateString();
 break;
 case "LONGDATE":
 strDate = oDateTime.ToLongDateString();
 break;
 default:
 strDate = oDateTime.ToString(strFormat);
 break;
 }
 }
 catch (Exception)
 {
 strDate = oDateTime.ToShortDateString();
 }
 return strDate;
 }
 #endregion
 #region 判断是否为合法日期,必须大于1800年1月1日
 /// <summary>
 /// 判断是否为合法日期,必须大于1800年1月1日
 /// </summary>
 /// <param name="strDate">输入日期字符串</param>
 /// <returns>True/False</returns>
 public static bool IsDateTime(string strDate)
 {
 try
 {
 DateTime oDate = DateTime.Parse(strDate);
 if (oDate.CompareTo(DateTime.Parse("1800-1-1")) > 0)
 return true;
 else
 return false;
 }
 catch (Exception)
 {
 return false;
 }
 }
 #endregion
 #region 获取两个日期之间的差值 可返回年 月 日 小时 分钟 秒
 /// <summary>
 /// 获取两个日期之间的差值
 /// </summary>
 /// <param name="howtocompare">比较的方式可为:year month day hour minute second</param>
 /// <param name="startDate">开始日期</param>
 /// <param name="endDate">结束日期</param>
 /// <returns>时间差</returns>
 public static double DateDiff(string howtocompare, DateTime startDate, DateTime endDate)
 {
 double diff = 0;
 try
 {
 TimeSpan TS = new TimeSpan(endDate.Ticks - startDate.Ticks);
 switch (howtocompare.ToLower())
 {
 case "year":
 diff = Convert.ToDouble(TS.TotalDays / 365);
 break;
 case "month":
 diff = Convert.ToDouble((TS.TotalDays / 365) * 12);
 break;
 case "day":
 diff = Convert.ToDouble(TS.TotalDays);
 break;
 case "hour":
 diff = Convert.ToDouble(TS.TotalHours);
 break;
 case "minute":
 diff = Convert.ToDouble(TS.TotalMinutes);
 break;
 case "second":
 diff = Convert.ToDouble(TS.TotalSeconds);
 break;
 }
 }
 catch (Exception)
 {
 diff = 0;
 }
 return diff;
 }
 #endregion
 #region 计算两个日期之间相差的工作日天数
 /// <summary>
 /// 计算两个日期之间相差的工作日天数
 /// </summary>
 /// <param name="dtStart">开始日期</param>
 /// <param name="dtEnd">结束日期</param>
 /// <param name="Flag">是否除去周六,周日</param>
 /// <returns>Int</returns>
 public static int CalculateWorkingDays(DateTime dtStart, DateTime dtEnd, bool Flag)
 {
 int count = 0;
 for (DateTime dtTemp = dtStart; dtTemp < dtEnd; dtTemp = dtTemp.AddDays(1))
 {
 if (Flag)
 {
 if (dtTemp.DayOfWeek != DayOfWeek.Saturday && dtTemp.DayOfWeek != DayOfWeek.Sunday)
 {
 count++;
 }
 }
 else
 {
 count++;
 }
 }
 return count;
 }
 #endregion
 }
}

更多关于asp.net相关内容感兴趣的读者可查看本站专题:《asp.net操作json技巧总结》、《asp.net字符串操作技巧汇总》、《asp.net操作XML技巧总结》、《asp.net文件操作技巧汇总》、《asp.net ajax技巧总结专题》及《asp.net缓存操作技巧总结》。

希望本文所述对大家asp.net程序设计有所帮助。

文档

asp.net(C#)实现功能强大的时间日期处理类完整实例

asp.net(C#)实现功能强大的时间日期处理类完整实例:本文实例讲述了asp.net(C#)实现功能强大的时间日期处理类。分享给大家供大家参考,具体如下: using System; using System.Data; using System.Configuration; using System.Web; using System.Web.Security; usin
推荐度:
标签: 时间 日期 实例
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top