type.GetFields() 获取不到,改用type.DeclaredFields

 StatisticQuery 类

 private Dictionary<string, DateTime> GetTBHBDate(StatisticQuery model, string field)
        {
            Dictionary<string, DateTime> dic = new Dictionary<string, DateTime>();
            DateTime TB = new DateTime();//同比开始日期 (年)
            DateTime HB = new DateTime();//环比开始日期 (月)

            DateTime fieldValue = new DateTime();
            Type type = typeof(StatisticQuery);
            // 根据字段名称获取 FieldInfo 对象
            //FieldInfo fileinfo= type.GetField(field, BindingFlags.Instance | BindingFlags.NonPublic);
            var fieldInfos = (System.Reflection.FieldInfo[])((System.Reflection.TypeInfo)type).DeclaredFields;
            foreach (FieldInfo f in fieldInfos) {
                if (f.Name.Contains(field) && !f.Name.Contains("1")) {
                    // 获取字段值
                    fieldValue = (DateTime)f.GetValue(model);
                    continue;
                }
            }

            int daysInCurrentMonth = DateTime.DaysInMonth(fieldValue.Year, fieldValue.Month); // 获取查询日期当前月份的天数
            bool isLastDayOfMonth = (daysInCurrentMonth == fieldValue.Day); // 判断查询日期是否为月末最后一天
            if (!string.IsNullOrEmpty(model.setTime))//是否任意年度
            {
                //判断任意年度当月日期是否最后一天
                int daysInRandomMonth = DateTime.DaysInMonth(Convert.ToDateTime(fieldValue.ToString("" + model.setTime + "-MM-01")).Year, Convert.ToDateTime(fieldValue.ToString("" + model.setTime + "-MM-01")).Month);
                bool isLastDayOfMonthRandom = (daysInRandomMonth == Convert.ToDateTime(fieldValue.ToString("" + model.setTime + "-MM-01")).Day);
                if (isLastDayOfMonth && !isLastDayOfMonthRandom)
                {
                    //不是最后一天就改为最后一天
                    TB = Convert.ToDateTime(fieldValue.ToString("" + model.setTime + "-MM-01")).AddMonths(1).AddDays(-1);
                }
                else { TB = Convert.ToDateTime(fieldValue.ToString("" + model.setTime + "-MM-dd")); }


                daysInRandomMonth = DateTime.DaysInMonth(Convert.ToDateTime(fieldValue.AddMonths(-1).ToString("" + model.setTime + "-MM-01")).Year, Convert.ToDateTime(fieldValue.AddMonths(-1).ToString("" + model.setTime + "-MM-01")).Month);
                isLastDayOfMonthRandom = (daysInRandomMonth == Convert.ToDateTime(fieldValue.AddMonths(-1).ToString("" + model.setTime + "-MM-01")).Day);
                if (isLastDayOfMonth && !isLastDayOfMonthRandom)
                {
                    //不是最后一天就改为最后一天
                    HB = Convert.ToDateTime(fieldValue.AddMonths(-1).ToString("yyyy-MM-01")).AddMonths(1).AddDays(-1);
                }
                else { HB = Convert.ToDateTime(fieldValue.AddMonths(-1)); }

            }
            else
            {
                //上一年度
                int daysInLastMonth = DateTime.DaysInMonth(fieldValue.AddYears(-1).Year, fieldValue.AddYears(-1).Month); // 获取当前月份的天数
                bool isLastDayOfLastMonth = (daysInLastMonth == fieldValue.AddYears(-1).Day); // 判断是否为月末最后一天
                if (isLastDayOfMonth && !isLastDayOfLastMonth)
                {
                    //不是最后一天就改为最后一天
                    TB = Convert.ToDateTime(fieldValue.AddYears(-1).ToString("yyyy-MM-01")).AddMonths(1).AddDays(-1);
                }
                else
                {
                    TB = Convert.ToDateTime(fieldValue.AddYears(-1));
                }


                daysInLastMonth = DateTime.DaysInMonth(fieldValue.AddMonths(-1).Year, fieldValue.AddMonths(-1).Month); // 获取当前月份的天数
                isLastDayOfLastMonth = (daysInLastMonth == fieldValue.AddMonths(-1).Day); // 判断是否为月末最后一天
                if (isLastDayOfMonth && !isLastDayOfLastMonth)
                {
                    //不是最后一天就改为最后一天
                    HB = Convert.ToDateTime(fieldValue.AddMonths(-1).ToString("yyyy-MM-01")).AddMonths(1).AddDays(-1);
                }
                else
                {
                    HB = Convert.ToDateTime(fieldValue.AddMonths(-1));
                }
            }
            dic.Add("TB", TB);
            dic.Add("HB", HB);
            return dic;
        }

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/427915.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

计网面试题整理下

1. HTTP常见的状态码有哪些&#xff1f; 常见状态码&#xff1a; 200&#xff1a;服务器已成功处理了请求。 通常&#xff0c;这表示服务器提供了请求的网页。301 &#xff1a; (永久移动) 请求的网页已永久移动到新位置。 服务器返回此响应(对 GET 或 HEAD 请求的响应)时&am…

揭秘测试工程师的6大必备技能!你也常遇到这个问题吗?

作为一名Tester&#xff0c;无论是面试还是工作&#xff0c;我们都常常会遇到该问题&#xff0c;毕竟现在大部分接手的项目都是中小型的项目&#xff0c;很多又是生疏行业的系统&#xff0c;所以这个问题就会常常伴随我们&#xff0c;那么遇到这个问题该怎么办呢&#xff0c;现…

淘宝1688京东商品采集API接口系列,item_get-获得淘宝商品详情

请求示例&#xff0c;API接口接入Anzexi58 商品采集API接口系列 商品搜索API&#xff1a; 功能&#xff1a;根据关键词、分类、价格范围等条件搜索商品。参数&#xff1a;关键词、分类ID、价格范围、品牌等。返回&#xff1a;商品列表&#xff0c;包括商品ID、名称、价格、图片…

【C++练级之路】【Lv.10】【STL】priority_queue类和反向迭代器的模拟实现

快乐的流畅&#xff1a;个人主页 个人专栏&#xff1a;《C语言》《数据结构世界》《进击的C》 远方有一堆篝火&#xff0c;在为久候之人燃烧&#xff01; 文章目录 一、仿函数1.1 仿函数的介绍1.2 仿函数的优势 二、priority_queue2.1 push2.2 pop2.3 top2.4 size2.5 empty 三、…

[Java 探索之路~大数据篇] 新时代大数据流处理入门指南

本文主要介绍大数据基础&#xff0c;以及 flink 流计算 文章目录 【基础知识】1. 批处理与流处理1.批处理2.流处理 2. 为什么需要一个优秀的流处理框架1. 股票交易的业务场景2.生产者——消费者模型3. 流处理框架要解决的诸多问题&#xff08;1&#xff09;可扩展性&#xff08…

自定义View中的ListView和ScrollView嵌套的问题

当我们在使用到ScrollView和ListView的时候可能会出现显示不全的问题。那我们可以进行以下分析 ScrollView在测量子布局的时候会用UNSPECIFIED。通过源码观察&#xff0c; 在ScrollView的onMeasure方法中 Overrideprotected void onMeasure(int widthMeasureSpec, int heightMe…

C++ 类的大小 原理+详细计算示例

大小的组成 类的大小受&#xff1a;基类&#xff0c;成员&#xff0c;虚基表指针&#xff0c;虚函数表指针 影响。 计算方式 需要按照下列要素对齐和规则计算对齐&#xff1a; 对齐要素 编译器默认对齐数 根据环境改变&#xff0c;一般32位为4&#xff0c;64位为8。 有效…

KMP算法模板

KMP算法模板 自用&#xff0c;相关题解参考

电瓶车充电安全谈|南京小区15死44伤火灾背后的思考

今年2月23日&#xff0c;南京雨花台区明尚西苑居民楼发生了一起重大火灾事故&#xff0c;在事故中&#xff0c;共有59人受到不同程度的伤害&#xff0c;遇难的有15人&#xff0c;另有44人在医院接受治疗。 南京雨花台区火灾的发生无疑是一场令人痛心的悲剧&#xff0c;这场事故…

如何在 Linux 中快速清空文件而不删除它们?

在Linux系统中&#xff0c;清空文件而不删除它们是一种常见的需求&#xff0c;特别是在需要保留文件结构或权限的情况下。本文将详细介绍如何在Linux环境中快速清空文件内容的多种方法&#xff0c;以及每种方法的优缺点。清空文件通常涉及到文件内容的擦除&#xff0c;但并不涉…

【MySQL】事务管理 -- 详解

一、前言 CURD 不加控制&#xff0c;会有什么问题&#xff1f; CURD 满足什么属性&#xff0c;能解决上述问题&#xff1f; 买票的过程得是原子的。买票应该不能受互相的影响。买完票应该要永久有效。买前和买后都要是确定的状态。 什么是事务&#xff1f; 事务就是一组 DML…

DCTNet

DCTNet http://giantpandacv.com/academic/%E7%AE%97%E6%B3%95%E7%A7%91%E6%99%AE/%E9%A2%91%E5%9F%9F%E4%B8%AD%E7%9A%84CNN/CVPR%202020%20%E5%9C%A8%E9%A2%91%E5%9F%9F%E4%B8%AD%E5%AD%A6%E4%B9%A0%E7%9A%84DCTNet/ 一个对输入图像进行频域转换和选择的方法&#xff0c;达到…

Timeout while connecting to “172.168.252.245:161

Timeout while connecting to “172.168.252.245:161” 现象 排查过程 交换机型号H3C&#xff0c;交换机采用SNMPV3协议对接zabbix&#xff0c;交换机配置如下 snmp-agent sys-info version all snmp-agent group v3 zabbix_group privacy read-view isoview snmp-agent …

本地安装部署Flask并结合内网穿透实现远程访问本地web界面

文章目录 1. 安装部署Flask2. 安装Cpolar内网穿透3. 配置Flask的web界面公网访问地址4. 公网远程访问Flask的web界面 本篇文章主要讲解如何在本地安装Flask&#xff0c;以及如何将其web界面发布到公网进行远程访问。 Flask是目前十分流行的web框架&#xff0c;采用Python编程语…

windows下的反调试探究——调用API

NtGlobalFlag 在 32 位机器上&#xff0c;NtGlobalFlag字段位于PEB的0x68的偏移处&#xff0c;64 位机器则是在偏移0xBC位置&#xff0c;该字段的默认值为 0。当调试器正在运行时&#xff0c;该字段会被设置为一个特定的值 该字段包含有一系列的标志位&#xff0c;由调试器创…

(学习日记)2024.03.02:UCOSIII第四节:创建任务

写在前面&#xff1a; 由于时间的不足与学习的碎片化&#xff0c;写博客变得有些奢侈。 但是对于记录学习&#xff08;忘了以后能快速复习&#xff09;的渴望一天天变得强烈。 既然如此 不如以天为单位&#xff0c;以时间为顺序&#xff0c;仅仅将博客当做一个知识学习的目录&a…

【MySQL 系列】在 Windows 上安装 MySQL

在 Windows 平台上安装 MySQL 很简单&#xff0c;并不需要太复杂的步骤。按照本文的步骤操练起来就可以了。 文章目录 1、下载 MySQL 安装程序2、安装 MySQL 数据库2.1、选择安装类型2.2、检查所需组件2.3、安装所选产品组件2.4、产品配置2.5、配置高可用性2.6、配置服务器类型…

UDP协议和TCP协议详解

文章目录 应用层自定义协议 传输层udp协议TCP协议1.确认应答2.超时重传3.连接管理建立连接, 三次握手断开连接, 四次挥手tcp的状态 4.滑动窗口5.流量控制6.拥塞控制7.延时应答8.携带应答9.面向字节流10.异常情况 应用层 自定义协议 客户端和服务器之间往往要进行交互的是“结构…

网络工程师笔记8

华为VRP系统 设备管理方式 web管理方式 命令行管理方式 修改命令&#xff1a;undo 基础配置命令

学习python时一些笔记

1、winr 命令提示符的快捷键 输入cmd进入终端 2、在终端运行桌面上的python文件 cd desktop(桌面) cd是进入该文件夹的意思。 cd .. 回到上一级 运行python时一定要找到文件的所在地 输入python进入&#xff0c;exit()退出%s字符串占位符%d数字占位符%f浮点数占位符input输…