zoukankan      html  css  js  c++  java
  • c#如何计算当月季度时间段

    先列个CODE出来

            public void MadeDateTime(DateTime standTime, out DateTime? startTime, out DateTime? endTime)
    {
    //1~3;4~6;7~9;10~12
    //1-4-7-10
    int baseMonth = standTime.Month - 1;
    int MonthLen = baseMonth / 3;
    startTime
    = new DateTime(standTime.Year, 1 + MonthLen * 3, 1);
    endTime
    = startTime.Value.AddMonths(3).AddMilliseconds(-1);
    }

    第一个参数为标准对校时间点。

    第二个参数为当前季度的起始时间点

    第三个参数为当前季度的结束时间点

    计算原理:

    1/3=0
    2/3=0
    3/3=1
    4/3=1
    5/3=1
    6/3=2
    7/3=2
    8/3=2
    9/3=3
    10/3=3
    11/3=3
    12/3=4 

     大家发现了没有呢?如果将月份-1再除以3的话,就得到以下结果

    (1-1)/3=0
    (2-1)/3=0
    (3-1)/3=0
    (4-1)/3=1
    (5-1)/3=1
    (6-1)/3=1
    (7-1)/3=2
    (8-1)/3=2
    (9-1)/3=2
    (10-1)/3=3
    (11-1)/3=3
    (12-1)/3=3 

    然后拿这个计算结果乘以3再加1的话,就得到这个月的季度的起始月份

    0*3+1=1
    0*3+1=1
    0*3+1=1
    1*3+1=4
    1*3+1=4
    1*3+1=4
    2*3+1=7
    2*3+1=7
    2*3+1=7
    3*3+1=10
    3*3+1=10
    3*3+1=10
    有了起始的月份后,结束时间就是起始的时间加上3个月再减去一毫秒,就得到了季度的结束时间了,就有了刚开始的CODE。
     

  • 相关阅读:
    Node.js 究竟是什么?
    天津自考学习之“六步看书法”
    C专家编程cdecl
    Linux系统启动流程及安装命令行版本
    Java学习路线
    GCC内置宏
    GMP
    二级存储构建倒排索引
    余弦距离与欧式距离
    af
  • 原文地址:https://www.cnblogs.com/magic_evan/p/2153356.html
Copyright © 2011-2022 走看看