zoukankan      html  css  js  c++  java
  • aps.net中几个常用的时间计算

      1      /// <summary>
      2      /// 获取周的数据信息
      3      /// </summary>
      4     /// <param name="argTime">为当前时间</param>
      5     private void GetWeekData(string argTime)
      6     {
      7         DateTime _thisTime = Convert.ToDateTime(argTime);
      8         DateTime dtWeekStart = new DateTime();
      9         DateTime dtWeekeEnd = new DateTime();
     10         DateTimeUtils.GetWeek(_thisTime.Year, DateTimeUtils.WeekOfYear(_thisTime), out dtWeekStart, out dtWeekeEnd);
     11 
     12         int start = dtWeekStart.Day;
     13         int end = dtWeekeEnd.Day;
     14         DataTable _thisTable = CreateWhereTable();
     15 
     16         TimeSpan ts = dtWeekeEnd.Subtract(dtWeekStart);
     17 
     18         int j = ts.Days;
     19         for (int i = ts.Days; i >= 0; i--)
     20         {
     21             DateTime _thisMyTime = dtWeekStart.AddDays(j);
     22             _thisTable = CreateWhereTableRow(_thisTable, _thisMyTime.ToString("yyyy-MM-dd"), "Week");
     23             j -= 1;
     24         }
     25 
     26         string _thisTempTime = _thisTime.ToString("yyyy-MM-dd");
     27         DataRow _thisRow = _thisTable.NewRow();
     28         foreach (DataRow _row in _thisTable.Rows)
     29         {
     30             if (_row["Date"].ToString().Trim().Equals(_thisTempTime))
     31             {
     32                 _thisRow["Date"= _row["Date"];
     33                 _thisRow["Class"= _row["Class"];
     34                 _thisTable.Rows.Remove(_row);
     35                 _thisTable.Rows.InsertAt(_thisRow, 0);
     36                 break;
     37             }
     38         }
     39         //_thisTable 为当前一周内所有日期(当然这一周是以星期日开始)
     40         GetData(_thisTable);//这里则根据一周信息绑定相应数据方法。
     41 
     42     }
     43 
     44 
     45     /// <summary>
     46     /// 获取月数据
     47     /// </summary>
     48     /// <param name="argDate"></param>
     49     private void GetMonthDate(string argDate)
     50     {
     51         DataTable _thisTable = CreateWhereTable();
     52         DateTime _thisTime = DateTimeUtils.FirstDayOfMonth(Convert.ToDateTime(argDate));//获取月的第一天
     53         DateTime _thisEndTime = DateTimeUtils.LastDayOfMonth(Convert.ToDateTime(argDate));//获取月的最后一天
     54         int FirstDay = DateTimeUtils.FirstDayOfMonth(Convert.ToDateTime(argDate)).Day;//获取月第一天的天数
     55         int LastDay = DateTimeUtils.LastDayOfMonth(Convert.ToDateTime(argDate)).Day;//获取月最后一天的天数
     56         _thisTable = CreateWhereTableRow(_thisTable, _thisEndTime.ToString(), "Month");
     57 
     58         for (int i = FirstDay; i < LastDay; i++)
     59         {
     60             _thisTable = CreateWhereTableRow(_thisTable, _thisEndTime.AddDays(-i).ToString("yyyy-MM-dd"), "Month");
     61         }
     62 
     63         string _thisTempTime = Convert.ToDateTime(argDate).ToString("yyyy-MM-dd");
     64         DataRow _thisRow = _thisTable.NewRow();
     65         foreach (DataRow _row in _thisTable.Rows)
     66         {
     67             if (_row["Date"].ToString().Trim().Equals(_thisTempTime))
     68             {
     69                 _thisRow["Date"= _row["Date"];
     70                 _thisRow["Class"= _row["Class"];
     71                 _thisTable.Rows.Remove(_row);
     72                 _thisTable.Rows.InsertAt(_thisRow, 0);
     73                 break;
     74             }
     75         }
     76 
     77         GetData(_thisTable);
     78     }
     79 
     80 
     81     //获取年的数据
     82     private void GetYearDate(string argDate)
     83     {
     84         DateTime _thisDt = Convert.ToDateTime(argDate);
     85         DataTable _thisTable = CreateWhereTable();
     86         int year = _thisDt.Year;
     87 
     88         string _thisStrDate = string.Empty;
     89         for (int i = 12; i > 0; i--)
     90         {
     91             _thisStrDate = year + "-" + i + "-01";
     92             _thisTable = CreateWhereTableRow(_thisTable, Convert.ToDateTime(_thisStrDate).ToString("yyyy-MM-dd"), "Year");
     93         }
     94 
     95         string _thisYear = _thisDt.Year.ToString();
     96         string _thisMonth = _thisDt.Month.ToString();
     97         //下面操作是将当前时间放到第一  其他时间顺便不改变
     98         string strFYear = Convert.ToDateTime(_thisYear + "-" + _thisMonth + "-01").ToString("yyyy-MM-dd");
     99 
    100         DataRow _thisRow = _thisTable.NewRow();
    101         foreach (DataRow _row in _thisTable.Rows)
    102         {
    103             if (_row["Date"].ToString().Trim().Equals(strFYear))
    104             {
    105                 _thisRow["Date"= _row["Date"];
    106                 _thisRow["Class"= _row["Class"];
    107                 _thisTable.Rows.Remove(_row);
    108                 _thisTable.Rows.InsertAt(_thisRow, 0);
    109                 break;
    110             }
    111         }
    112 
    113         GetData(_thisTable);
    114     }
    115 
    116 
    117 
    118 
    119 

    下面将放入常用日期处理类(当然这些常用函数大多数都是从网上搜索,希望大家一起完善此类。如有侵犯原版请指出)

    日程处理类
      1  public class DateTimeUtils
      2     {
      3         //当天与该周星期一相差的天数
      4         public static int getModdayNum(System.DayOfWeek dw)
      5         {
      6             int weeknow = Convert.ToInt32(dw);
      7             int moddayNum = (-1* weeknow + 1;
      8             return moddayNum;
      9         }
     10 
     11         //当天与该周星期日相差的天数
     12         public static int getSundayNum(System.DayOfWeek dw)
     13         {
     14             int weeknow = Convert.ToInt32(dw);
     15             int sundayNum = 7 - weeknow;
     16             return sundayNum;
     17         }
     18 
     19         //该周星期一的日期
     20         public static string getWeekMonday(System.DayOfWeek dw, string timeFormateStr)
     21         {
     22             int weeknow = Convert.ToInt32(dw);
     23             int moddayNum = (-1* weeknow + 1;
     24             string weekMonday = System.DateTime.Now.AddDays(moddayNum).Date.ToString(timeFormateStr);
     25             return weekMonday;
     26         }
     27 
     28         //该周星期日的日期
     29         public static string getWeekSunday(System.DayOfWeek dw, string timeFormateStr)
     30         {
     31             int weeknow = Convert.ToInt32(dw);
     32             int sundayNum = 7 - weeknow;
     33             string weekSunday = System.DateTime.Now.AddDays(sundayNum).Date.ToString(timeFormateStr);
     34             return weekSunday;
     35         }
     36 
     37         //本周是本年第几周
     38         public static int weekNum(System.DayOfWeek dw)
     39         {
     40             int weeknow = Convert.ToInt32(dw);//今天星期几
     41             int daydiff = (-1* (weeknow + 1);//今日与上周末的天数差
     42             int days = System.DateTime.Now.AddDays(daydiff).DayOfYear;//上周末是本年第几天
     43             int weeks = days / 7;
     44             if (days % 7 != 0)
     45             {
     46                 weeks++;
     47             }
     48             return (weeks + 2);
     49         }
     50 
     51         //获取某年的第一天
     52         public static string YearOneDay(DateTime argTime)
     53         {
     54             int yearDay = argTime.DayOfYear;
     55             TimeSpan ts = new TimeSpan(yearDay);
     56             argTime = argTime.Subtract(ts);
     57             return argTime.ToShortDateString();
     58         }
     59 
     60 
     61         /// <summary>
     62         /// 得到一年中的某周的起始日和截止日
     63         /// 年 nYear
     64         /// 周数 nNumWeek
     65         /// 周始 out dtWeekStart
     66         /// 周终 out dtWeekeEnd
     67         /// </summary>
     68         /// <param name="nYear"></param>
     69         /// <param name="nNumWeek"></param>
     70         /// <param name="dtWeekStart"></param>
     71         /// <param name="dtWeekeEnd"></param>
     72         public static void GetWeek(int nYear, int nNumWeek, out   DateTime dtWeekStart, out   DateTime dtWeekeEnd)
     73         {
     74             DateTime dt = new DateTime(nYear, 11);
     75             dt = dt + new TimeSpan((nNumWeek - 1* 7000);
     76             //dtWeekStart = dt.AddDays(-(int)dt.DayOfWeek + (int)DayOfWeek.Monday);
     77             //dtWeekeEnd = dt.AddDays((int)DayOfWeek.Saturday - (int)dt.DayOfWeek + 1);
     78 
     79             dtWeekStart = dt.AddDays(Convert.ToDouble((0 - Convert.ToInt16(dt.DayOfWeek))));
     80             dtWeekeEnd = dt.AddDays(Convert.ToDouble((6 - Convert.ToInt16(dt.DayOfWeek))));
     81         }
     82 
     83 
     84         /**/
     85         /// <summary>
     86         /// 求当前日期是一年的中第几周
     87         /// </summary>
     88         /// <param name="date"></param>
     89         /// <returns></returns>
     90         public static int WeekOfYear(DateTime curDay)
     91         {
     92             int firstdayofweek = Convert.ToInt32(Convert.ToDateTime(curDay.Year.ToString() + "" + "1-1 ").DayOfWeek);
     93 
     94             int days = curDay.DayOfYear;
     95             int daysOutOneWeek = days - (7 - firstdayofweek);
     96 
     97             if (daysOutOneWeek <= 0)
     98             {
     99                 return 1;
    100             }
    101             else
    102             {
    103                 int weeks = daysOutOneWeek / 7;
    104                 if (daysOutOneWeek % 7 != 0)
    105                     weeks++;
    106                 return weeks + 1;
    107             }
    108         }
    109 
    110 
    111         /// <summary>
    112         /// 取得某月的第一天
    113         /// </summary>
    114         /// <param name="datetime">要取得月份第一天的时间 </param>
    115         /// <returns> </returns>
    116         public static DateTime FirstDayOfMonth(DateTime datetime)
    117         {
    118             return datetime.AddDays(1 - datetime.Day);
    119         }
    120 
    121         /**/
    122         /// <summary>
    123         /// 取得某月的最后一天
    124         /// </summary>
    125         /// <param name="datetime">要取得月份最后一天的时间 </param>
    126         /// <returns> </returns>
    127         public static DateTime LastDayOfMonth(DateTime datetime)
    128         {
    129             return datetime.AddDays(1 - datetime.Day).AddMonths(1).AddDays(-1);
    130         }
    131 
    132         /**/
    133         /// <summary>
    134         /// 取得上个月第一天
    135         /// </summary>
    136         /// <param name="datetime">要取得上个月第一天的当前时间 </param>
    137         /// <returns> </returns>
    138         public static DateTime FirstDayOfPreviousMonth(DateTime datetime)
    139         {
    140             return datetime.AddDays(1 - datetime.Day).AddMonths(-1);
    141         }
    142 
    143         /**/
    144         /// <summary>
    145         /// 取得上个月的最后一天
    146         /// </summary>
    147         /// <param name="datetime">要取得上个月最后一天的当前时间 </param>
    148         /// <returns> </returns>
    149         public static DateTime LastDayOfPrdviousMonth(DateTime datetime)
    150         {
    151             return datetime.AddDays(1 - datetime.Day).AddDays(-1);
    152         }
    153 
    154         public static string workZh(string argName)
    155         {
    156             string strName = string.Empty;
    157             switch (argName)
    158             {
    159                 case "Saturday":
    160                     strName = "星期六";
    161                     break;
    162                 case "Sunday":
    163                     strName = "星期日";
    164                     break;
    165                 case "Friday":
    166                     strName = "星期五";
    167                     break;
    168                 case "Thursday":
    169                     strName = "星期四";
    170                     break;
    171                 case "Wednesday":
    172                     strName = "星期三";
    173                     break;
    174                 case "Tuesday":
    175                     strName = "星期二";
    176                     break;
    177                 case "Monday":
    178                     strName = "星期一";
    179                     break;
    180             }
    181             return strName;
    182         }
    183 
    184     }
  • 相关阅读:
    (jmeter笔记)jmeter远程启用服务器(分布式)
    (jmeter笔记)jmeter打印日志
    (jmeter笔记)Jmeter正则表达式提取器获取Response hearders
    css3实现好看的边框效果
    简单递归写侧边菜单栏
    css3的transform-origin配合scale,控制动画,实现各种hover效果
    浅谈jQuery的promise
    tips07-encodeURI()的使用
    weui 的使用方法
    git 合并分支的时候会遇到的问题
  • 原文地址:https://www.cnblogs.com/gonganruyi/p/1629556.html
Copyright © 2011-2022 走看看