zoukankan      html  css  js  c++  java
  • 转: 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

  • 相关阅读:
    scrapy中selenium的应用
    Django的锁和事务
    redis
    【leetcode】187. Repeated DNA Sequences
    【leetcode】688. Knight Probability in Chessboard
    【leetcode】576. Out of Boundary Paths
    【leetcode】947. Most Stones Removed with Same Row or Column
    【leetcode】948. Bag of Tokens
    【leetcode】946. Validate Stack Sequences
    【leetcode】945. Minimum Increment to Make Array Unique
  • 原文地址:https://www.cnblogs.com/skyapplezhao/p/7168961.html
Copyright © 2011-2022 走看看