• 转: C# 根据当前时间获取,本周,本月,本季度等时间段 .Net中Exception


      1 DateTime dt = DateTime.Now; //当前时间
      2 
      3 DateTime startWeek = dt.AddDays(1 - Convert.ToInt32(dt.DayOfWeek.ToString("d"))); //本周周一
      4 DateTime endWeek = startWeek.AddDays(6); //本周周日
      5 
      6 DateTime startMonth = dt.AddDays(1 - dt.Day); //本月月初
      7 DateTime endMonth = startMonth.AddMonths(1).AddDays(-1); //本月月末
      8 //DateTime endMonth = startMonth.AddDays((dt.AddMonths(1) - dt).Days - 1); //本月月末
      9 
     10 DateTime startQuarter = dt.AddMonths(0 - (dt.Month - 1) % 3).AddDays(1 - dt.Day); //本季度初
     11 DateTime endQuarter = startQuarter.AddMonths(3).AddDays(-1); //本季度末
     12 
     13 DateTime startYear = new DateTime(dt.Year, 1, 1); //本年年初
     14 DateTime endYear = new DateTime(dt.Year, 12, 31); //本年年末
     15 
     16 至于昨天、明天、上周、上月、上季度、上年度等等,只要AddDays()、AddMonths()、AddYears()这几种方法组合一下就可以了。
     17 C#中datetime的使用
     18 //如果你还不明白,再看一下中文显示星期几的方法就应该懂了
     19 //由于DayOfWeek返回的是数字的星期几,我们要把它转换成汉字方便我们阅读,有些人可能会用switch来一个一个地对照,其实不用那么麻烦的
     20 string[] Day = new string[] { "星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六" };
     21 string week = Day[Convert.ToInt32(DateTime.Now.DayOfWeek.ToString("d"))].ToString();
     22 
     23 //上周,同理,一个周是7天,上周就是本周再减去7天,下周也是一样
     24 DateTime.Now.AddDays(Convert.ToInt32 (1 - Convert.ToInt32(DateTime.Now.DayOfWeek)) - 7); //上周一
     25 DateTime.Now.AddDays(Convert.ToInt32 (1 - Convert.ToInt32(DateTime.Now.DayOfWeek)) - 7).AddDays(6); //上周末(星期日)
     26 //下周
     27 DateTime.Now.AddDays(Convert.ToInt32 (1 - Convert.ToInt32(DateTime.Now.DayOfWeek)) + 7); //下周一
     28 DateTime.Now.AddDays(Convert.ToInt32(1 - Convert.ToInt32(DateTime.Now.DayOfWeek)) + 7).AddDays(6); //下周末
     29 //本月,很多人都会说本月的第一天嘛肯定是1号,最后一天就是下个月一号再减一天。当然这是对的
     30 //一般的写法
     31 DateTime.Now.Year.ToString() + DateTime.Now.Month.ToString() + "1"; //第一天
     32 DateTime.Parse(DateTime.Now.Year.ToString() + DateTime.Now.Month.ToString() + "1").AddMonths(1).AddDays(-1).ToShortDateString();//最后一天
     33 
     34 //巧用C#里ToString的字符格式化更简便
     35 DateTime.Now.ToString("yyyy-MM-01");
     36 DateTime.Parse(DateTime.Now.ToString("yyyy-MM-01")).AddMonths(1).AddDays(-1).ToShortDateString();
     37 
     38 //上个月,减去一个月份
     39 DateTime.Parse(DateTime.Now.ToString("yyyy-MM-01")).AddMonths(-1).ToShortDateString();
     40 DateTime.Parse(DateTime.Now.ToString("yyyy-MM-01")).AddDays(-1).ToShortDateString();
     41 //下个月,加去一个月份
     42 DateTime.Parse(DateTime.Now.ToString("yyyy-MM-01")).AddMonths(1).ToShortDateString();
     43 DateTime.Parse(DateTime.Now.ToString("yyyy-MM-01")).AddMonths(2).AddDays(-1).ToShortDateString();
     44 //7天后
     45 DateTime.Now.Date.ToShortDateString();
     46 DateTime.Now.AddDays(7).ToShortDateString();
     47 //7天前
     48 DateTime.Now.AddDays(-7).ToShortDateString();
     49 DateTime.Now.Date.ToShortDateString();
     50 
     51 //本年度,用ToString的字符格式化我们也很容易地算出本年度的第一天和最后一天
     52 DateTime.Parse(DateTime.Now.ToString("yyyy-01-01")).ToShortDateString();
     53 DateTime.Parse(DateTime.Now.ToString("yyyy-01-01")).AddYears(1).AddDays(-1).ToShortDateString();
     54 //上年度,不用再解释了吧
     55 DateTime.Parse(DateTime.Now.ToString("yyyy-01-01")).AddYears(-1).ToShortDateString();
     56 DateTime.Parse(DateTime.Now.ToString("yyyy-01-01")).AddDays(-1).ToShortDateString();
     57 //下年度
     58 DateTime.Parse(DateTime.Now.ToString("yyyy-01-01")).AddYears(1).ToShortDateString();
     59 DateTime.Parse(DateTime.Now.ToString("yyyy-01-01")).AddYears(2).AddDays(-1).ToShortDateString();
     60 
     61 //本季度,很多人都会觉得这里难点,需要写个长长的过程来判断。其实不用的,我们都知道一年四个季度,一个季度三个月
     62 //首先我们先把日期推到本季度第一个月,然后这个月的第一天就是本季度的第一天了
     63 DateTime.Now.AddMonths(0 - ((DateTime.Now.Month - 1) % 3)).AddDays(1 - DateTime.Now.Day);
     64 //同理,本季度的最后一天就是下季度的第一天减一
     65 DateTime.Parse(DateTime.Now.AddMonths(3 - ((DateTime.Now.Month - 1) % 3)).ToString("yyyy-MM-01")).AddDays(-1).ToShortDateString();
     66 //下季度,相信你们都知道了。。。。收工
     67 DateTime.Now.AddMonths(3 - ((DateTime.Now.Month - 1) % 3)).ToString("yyyy-MM-01");
     68 DateTime.Parse(DateTime.Now.AddMonths(6 - ((DateTime.Now.Month - 1) % 3)).ToString("yyyy-MM-01")).AddDays(-1).ToShortDateString();
     69 //上季度
     70 DateTime.Now.AddMonths(-3 - ((DateTime.Now.Month - 1) % 3)). AddDays(1 - DateTime.Now);
     71 DateTime.Now.AddMonths(0 - ((DateTime.Now.Month - 1) % 3)).AddDays(1 - DateTime.Now.Day).AddDays(-1).ToShortDateString();
     72 
     73 
     74 DateTime dt = DateTime.Now; //当前时间
     75 
     76 DateTime startWeek = dt.AddDays(1 - Convert.ToInt32(dt.DayOfWeek.ToString("d"))); //本周周一
     77 DateTime endWeek = startWeek.AddDays(6); //本周周日
     78 
     79 DateTime startMonth = dt.AddDays(1 - dt.Day); //本月月初
     80 DateTime endMonth = startMonth.AddMonths(1).AddDays(-1); //本月月末
     81 //DateTime endMonth = startMonth.AddDays((dt.AddMonths(1) - dt).Days - 1); //本月月末
     82 
     83 DateTime startQuarter = dt.AddMonths(0 - (dt.Month - 1) % 3).AddDays(1 - dt.Day); //本季度初
     84 DateTime endQuarter = startQuarter.AddMonths(3).AddDays(-1); //本季度末
     85 
     86 DateTime startYear = new DateTime(dt.Year, 1, 1); //本年年初
     87 DateTime endYear = new DateTime(dt.Year, 12, 31); //本年年末
     88 
     89 至于昨天、明天、上周、上月、上季度、上年度等等,只要AddDays()、AddMonths()、AddYears()这几种方法组合一下就可以了。
     90 C#中datetime的使用
     91 //如果你还不明白,再看一下中文显示星期几的方法就应该懂了
     92 //由于DayOfWeek返回的是数字的星期几,我们要把它转换成汉字方便我们阅读,有些人可能会用switch来一个一个地对照,其实不用那么麻烦的
     93 string[] Day = new string[] { "星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六" };
     94 string week = Day[Convert.ToInt32(DateTime.Now.DayOfWeek.ToString("d"))].ToString();
     95 
     96 //上周,同理,一个周是7天,上周就是本周再减去7天,下周也是一样
     97 DateTime.Now.AddDays(Convert.ToInt32 (1 - Convert.ToInt32(DateTime.Now.DayOfWeek)) - 7); //上周一
     98 DateTime.Now.AddDays(Convert.ToInt32 (1 - Convert.ToInt32(DateTime.Now.DayOfWeek)) - 7).AddDays(6); //上周末(星期日)
     99 //下周
    100 DateTime.Now.AddDays(Convert.ToInt32 (1 - Convert.ToInt32(DateTime.Now.DayOfWeek)) + 7); //下周一
    101 DateTime.Now.AddDays(Convert.ToInt32(1 - Convert.ToInt32(DateTime.Now.DayOfWeek)) + 7).AddDays(6); //下周末
    102 //本月,很多人都会说本月的第一天嘛肯定是1号,最后一天就是下个月一号再减一天。当然这是对的
    103 //一般的写法
    104 DateTime.Now.Year.ToString() + DateTime.Now.Month.ToString() + "1"; //第一天
    105 DateTime.Parse(DateTime.Now.Year.ToString() + DateTime.Now.Month.ToString() + "1").AddMonths(1).AddDays(-1).ToShortDateString();//最后一天
    106 
    107 //巧用C#里ToString的字符格式化更简便
    108 DateTime.Now.ToString("yyyy-MM-01");
    109 DateTime.Parse(DateTime.Now.ToString("yyyy-MM-01")).AddMonths(1).AddDays(-1).ToShortDateString();
    110 
    111 //上个月,减去一个月份
    112 DateTime.Parse(DateTime.Now.ToString("yyyy-MM-01")).AddMonths(-1).ToShortDateString();
    113 DateTime.Parse(DateTime.Now.ToString("yyyy-MM-01")).AddDays(-1).ToShortDateString();
    114 //下个月,加去一个月份
    115 DateTime.Parse(DateTime.Now.ToString("yyyy-MM-01")).AddMonths(1).ToShortDateString();
    116 DateTime.Parse(DateTime.Now.ToString("yyyy-MM-01")).AddMonths(2).AddDays(-1).ToShortDateString();
    117 //7天后
    118 DateTime.Now.Date.ToShortDateString();
    119 DateTime.Now.AddDays(7).ToShortDateString();
    120 //7天前
    121 DateTime.Now.AddDays(-7).ToShortDateString();
    122 DateTime.Now.Date.ToShortDateString();
    123 
    124 //本年度,用ToString的字符格式化我们也很容易地算出本年度的第一天和最后一天
    125 DateTime.Parse(DateTime.Now.ToString("yyyy-01-01")).ToShortDateString();
    126 DateTime.Parse(DateTime.Now.ToString("yyyy-01-01")).AddYears(1).AddDays(-1).ToShortDateString();
    127 //上年度,不用再解释了吧
    128 DateTime.Parse(DateTime.Now.ToString("yyyy-01-01")).AddYears(-1).ToShortDateString();
    129 DateTime.Parse(DateTime.Now.ToString("yyyy-01-01")).AddDays(-1).ToShortDateString();
    130 //下年度
    131 DateTime.Parse(DateTime.Now.ToString("yyyy-01-01")).AddYears(1).ToShortDateString();
    132 DateTime.Parse(DateTime.Now.ToString("yyyy-01-01")).AddYears(2).AddDays(-1).ToShortDateString();
    133 
    134 //本季度,很多人都会觉得这里难点,需要写个长长的过程来判断。其实不用的,我们都知道一年四个季度,一个季度三个月
    135 //首先我们先把日期推到本季度第一个月,然后这个月的第一天就是本季度的第一天了
    136 DateTime.Now.AddMonths(0 - ((DateTime.Now.Month - 1) % 3)).AddDays(1 - DateTime.Now.Day);
    137 //同理,本季度的最后一天就是下季度的第一天减一
    138 DateTime.Parse(DateTime.Now.AddMonths(3 - ((DateTime.Now.Month - 1) % 3)).ToString("yyyy-MM-01")).AddDays(-1).ToShortDateString();
    139 //下季度,相信你们都知道了。。。。收工
    140 DateTime.Now.AddMonths(3 - ((DateTime.Now.Month - 1) % 3)).ToString("yyyy-MM-01");
    141 DateTime.Parse(DateTime.Now.AddMonths(6 - ((DateTime.Now.Month - 1) % 3)).ToString("yyyy-MM-01")).AddDays(-1).ToShortDateString();
    142 //上季度
    143 DateTime.Now.AddMonths(-3 - ((DateTime.Now.Month - 1) % 3)). AddDays(1 - DateTime.Now);
    144 DateTime.Now.AddMonths(0 - ((DateTime.Now.Month - 1) % 3)).AddDays(1 - DateTime.Now.Day).AddDays(-1).ToShortDateString();

    原文:http://blog.csdn.net/swc493197713/article/details/7520907

  • 相关阅读:
    回发或回调参数无效。下拉菜单中使用ajax,联动菜单引起的问题解决方案
    jquery获取,赋值img的src值..
    jquery select set selectindex
    DateTime.ToString("dd/MM/yyyy");后,不能直接Convert.ToDateTime的解决:
    SQL Server根据查询结果,生成XML文件
    SQL生成XML
    SQLXML
    .net 点击刷新验证码问题
    C# 根据字节数截取字符串(区别汉字,英文,数字)
    c#中对xml文件的基本操作
  • 原文地址:https://www.cnblogs.com/skyapplezhao/p/7168961.html
Copyright © 2020-2023  润新知