• C#获取前一天日期


    C#里内置的DateTime基本上都可以实现这些功能,巧用DateTime会使你处理这些事来变轻松多了
    今天
    DateTime.Now.Date.ToShortDateString();
    昨天,就是今天的日期减一
    DateTime.Now.AddDays(-1).ToShortDateString();
    明天,同理,加一
    DateTime.Now.AddDays(1).ToShortDateString();

    本周(要知道本周的第一天就得先知道今天是星期几,从而得知本周的第一天就是几天前的那一天,要注意的是这里的每一周是从周日始至周六止
    DateTime.Now.AddDays(Convert.ToDouble((0 - Convert.ToInt16(DateTime.Now.DayOfWeek)))).ToShortDateString();
    DateTime.Now.AddDays(Convert.ToDouble((6 - Convert.ToInt16(DateTime.Now.DayOfWeek)))).ToShortDateString();
    如果你还不明白,再看一下中文显示星期几的方法就应该懂了
    由于DayOfWeek返回的是数字的星期几,我们要把它转换成汉字方便我们阅读,有些人可能会用switch来一个一个地对照,其实不用那么麻烦的             
    string[] Day = new string[] { "星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六" };
    Day[Convert.ToInt16(DateTime.Now.DayOfWeek)];

    上周,同理,一个周是7天,上周就是本周再减去7天,下周也是一样
    DateTime.Now.AddDays(Convert.ToDouble((0 - Convert.ToInt16(DateTime.Now.DayOfWeek))) - 7).ToShortDateString();
    DateTime.Now.AddDays(Convert.ToDouble((6 - Convert.ToInt16(DateTime.Now.DayOfWeek))) - 7).ToShortDateString();
    下周
    DateTime.Now.AddDays(Convert.ToDouble((0 - Convert.ToInt16(DateTime.Now.DayOfWeek))) + 7).ToShortDateString();
    DateTime.Now.AddDays(Convert.ToDouble((6 - Convert.ToInt16(DateTime.Now.DayOfWeek))) + 7).ToShortDateString();
    本月,很多人都会说本月的第一天嘛肯定是1号,最后一天就是下个月一号再减一天。当然这是对的
    一般的写法
    DateTime.Now.Year.ToString() + DateTime.Now.Month.ToString() + "1"; //第一天
    DateTime.Parse(DateTime.Now.Year.ToString() + DateTime.Now.Month.ToString() + "1").AddMonths(1).AddDays(-1).ToShortDateString();//最后一天

    巧用C#里ToString的字符格式化更简便
    DateTime.Now.ToString("yyyy-MM-01");
    DateTime.Parse(DateTime.Now.ToString("yyyy-MM-01")).AddMonths(1).AddDays(-1).ToShortDateString();

    上个月,减去一个月份
    DateTime.Parse(DateTime.Now.ToString("yyyy-MM-01")).AddMonths(-1).ToShortDateString();
    DateTime.Parse(DateTime.Now.ToString("yyyy-MM-01")).AddDays(-1).ToShortDateString();
    下个月,加去一个月份
    DateTime.Parse(DateTime.Now.ToString("yyyy-MM-01")).AddMonths(1).ToShortDateString();
    DateTime.Parse(DateTime.Now.ToString("yyyy-MM-01")).AddMonths(2).AddDays(-1).ToShortDateString();
    7天后
    DateTime.Now.Date.ToShortDateString();
    DateTime.Now.AddDays(7).ToShortDateString();
    7天前
    DateTime.Now.AddDays(-7).ToShortDateString();
    DateTime.Now.Date.ToShortDateString();

    本年度,用ToString的字符格式化我们也很容易地算出本年度的第一天和最后一天
    DateTime.Parse(DateTime.Now.ToString("yyyy-01-01")).ToShortDateString();
    DateTime.Parse(DateTime.Now.ToString("yyyy-01-01")).AddYears(1).AddDays(-1).ToShortDateString();
    上年度,不用再解释了吧
    DateTime.Parse(DateTime.Now.ToString("yyyy-01-01")).AddYears(-1).ToShortDateString();
    DateTime.Parse(DateTime.Now.ToString("yyyy-01-01")).AddDays(-1).ToShortDateString();
    下年度
    DateTime.Parse(DateTime.Now.ToString("yyyy-01-01")).AddYears(1).ToShortDateString();
    DateTime.Parse(DateTime.Now.ToString("yyyy-01-01")).AddYears(2).AddDays(-1).ToShortDateString();

    本季度,很多人都会觉得这里难点,需要写个长长的过程来判断。其实不用的,我们都知道一年四个季度,一个季度三个月
    首先我们先把日期推到本季度第一个月,然后这个月的第一天就是本季度的第一天了
    DateTime.Now.AddMonths(0 - ((DateTime.Now.Month - 1) % 3)).ToString("yyyy-MM-01");
    同理,本季度的最后一天就是下季度的第一天减一
    DateTime.Parse(DateTime.Now.AddMonths(3 - ((DateTime.Now.Month - 1) % 3)).ToString("yyyy-MM-01")).AddDays(-1).ToShortDateString();
    下季度,相信你们都知道了。。。。收工
    DateTime.Now.AddMonths(3 - ((DateTime.Now.Month - 1) % 3)).ToString("yyyy-MM-01");
    DateTime.Parse(DateTime.Now.AddMonths(6 - ((DateTime.Now.Month - 1) % 3)).ToString("yyyy-MM-01")).AddDays(-1).ToShortDateString();
    上季度
    DateTime.Now.AddMonths(-3 - ((DateTime.Now.Month - 1) % 3)).ToString("yyyy-MM-01");
    DateTime.Parse(DateTime.Now.AddMonths(0 - ((DateTime.Now.Month - 1) % 3)).ToString("yyyy-MM-01")).AddDays(-1).ToShortDateString();

    ======简单补充======

    c#中如何获取时间!
    1、DateTime 数字型
    System.DateTime currentTime=new System.DateTime();
    1.1 取当前年月日时分秒
    currentTime=System.DateTime.Now;
    1.2 取当前年
    int 年=currentTime.Year;
    1.3 取当前月
    int 月=currentTime.Month;
    1.4 取当前日
    int 日=currentTime.Day;
    1.5 取当前时
    int 时=currentTime.Hour;
    1.6 取当前分
    int 分=currentTime.Minute;
    1.7 取当前秒
    int 秒=currentTime.Second;
    1.8 取当前毫秒
    int 毫秒=currentTime.Millisecond;
    (变量可用中文)  

    1.9 取中文日期显示——年月日时分
    string strY=currentTime.ToString("f"); //不显示秒

    1.10 取中文日期显示_年月
    string strYM=currentTime.ToString("y");

    1.11 取中文日期显示_月日
    string strMD=currentTime.ToString("m");

    1.12 取中文年月日
    string strYMD=currentTime.ToString("D");

    1.13 取当前时分,格式为:14:24
    string strT=currentTime.ToString("t");

    1.14 取当前时间,格式为:2003-09-23T14:46:48
    string strT=currentTime.ToString("s");

    1.15 取当前时间,格式为:2003-09-23 14:48:30Z
    string strT=currentTime.ToString("u");

    1.16 取当前时间,格式为:2003-09-23 14:48
    string strT=currentTime.ToString("g");

    1.17 取当前时间,格式为:Tue, 23 Sep 2003 14:52:40 GMT
    string strT=currentTime.ToString("r");

    1.18获得当前时间 n 天后的日期时间
    DateTime newDay = DateTime.Now.AddDays(100);

    string strT = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");

    System.DateTime currentTime=new System.DateTime();
    currentTime=System.DateTime.Now; //取当前年月日时分秒
    string Y=currentTime.Year.ToString(); //取当前年
    string M=currentTime.Month.ToString(); //取当前月
    string D=currentTime.Day.ToString(); //取当前日
    string T=currentTime.Hour.ToString(); //取当前时
    string MM=currentTime.Minute.ToString(); //取当前分
    string S=currentTime.Second.ToString(); //取当前秒
    string SS=currentTime.Millisecond.ToString(); //取当前毫秒
    string FileName=Y+M+D+T+MM+S+SS+".Html"; //联接后,得到长文件名

  • 相关阅读:
    使用 Dockerfile 定制镜像
    UVA 10298 Power Strings 字符串的幂(KMP,最小循环节)
    UVA 11090 Going in Cycle!! 环平均权值(bellman-ford,spfa,二分)
    LeetCode Best Time to Buy and Sell Stock 买卖股票的最佳时机 (DP)
    LeetCode Number of Islands 岛的数量(DFS,BFS)
    LeetCode Triangle 三角形(最短路)
    LeetCode Swap Nodes in Pairs 交换结点对(单链表)
    LeetCode Find Minimum in Rotated Sorted Array 旋转序列找最小值(二分查找)
    HDU 5312 Sequence (规律题)
    LeetCode Letter Combinations of a Phone Number 电话号码组合
  • 原文地址:https://www.cnblogs.com/canfengfeixue/p/15892365.html
Copyright © 2020-2023  润新知