c# 快捷时间对生成 (当日,本周,本月,本季度,本年)

这段代码定义了一个枚举`selectTime`,用于表示不同的日期范围,如当日、昨日、前日等。`setTime`方法根据`selectTime`参数计算并返回相应的日期范围。例如,当选择`当日`时,返回当前日期作为开始和结束日期;选择`本周`则返回本周一的开始日期和周日的结束日期。

        public enum selectTime
        {
            当日,
            昨日,
            前日,
            本周,
            上周,
            本月,
            上月,
            本季,
            本年,
        }
        public DateTime[] setTime(selectTime intType)
        {

            DateTime dat1 = DateTime.Now.Date;
            DateTime dat2 = DateTime.Now.Date;
            
            switch (intType)
            {
                case selectTime.当日:
                    dat1 = DateTime.Now.Date;
                    dat2 = dat1;
                    break;
                case selectTime.昨日:
                    dat1 = dat1.AddDays(-1);
                    dat2 = dat1;
                    break;
                case selectTime.前日:
                    dat1 = dat1.AddDays(-2);
                    dat2 = dat1;
                    break;
                case selectTime.本周:
                    dat1 = dat1.AddDays(1).AddDays(-dat1.DayOfWeek.GetHashCode());
                    dat2 = dat1.AddDays(6);
                    break;
                case selectTime.上周:
                    dat1 = dat1.AddDays(1).AddDays(-dat1.DayOfWeek.GetHashCode() - 7);
                    dat2 = dat1.AddDays(6 + 7);
                    break;
                case selectTime.本月:
                    dat1 = dat1.AddDays(1).AddDays(-dat1.Day);
                    dat2 = dat1.AddMonths(1).AddDays(-1);
                    break;
                case selectTime.上月:
                    dat1 = dat1.AddDays(1).AddDays(-dat1.Day).AddMonths(-1);
                    dat2 = dat1.AddMonths(1).AddDays(-1);
                    break;
                case selectTime.本季:
                    dat1 = dat1.AddDays(1).AddDays(-dat1.Day).AddMonths(0 - ((DateTime.Now.Month - 1) % 3));
                    dat2 = dat1.AddMonths(3).AddDays(-1);
                    break;
                case selectTime.本年:
                    dat1 = dat1.AddMonths(-dat1.Month + 1).AddDays(-dat1.Day + 1);
                    dat2 = dat1.AddYears(1).AddDays(-1);
                    break;
                default:
                    break;
            }
            return new[] { dat1, dat2 };
        }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值