当前位置: 首页 > news >正文

获取 本周、本月、本年 的开始或结束时间

获取 本周、本月、本年 的开始或结束时间

 public class DateTimeUtil{// 获取 本周、本月、本年 的开始或结束时间/// <summary>/// 获取开始时间/// </summary>/// <param name="TimeType">Week、Month、Year</param>/// <param name="NowTime">当前时间</param>/// <returns></returns>public static string GetStarTimetByType(string TimeType, DateTime NowTime){switch (TimeType){case "Week":return NowTime.AddDays((7 - (int)NowTime.DayOfWeek) % 7 - 7 + 1).ToString("yyyy-MM-dd 00:00:00");case "Month":return NowTime.AddDays(-NowTime.Day + 1).ToString("yyyy-MM-dd 00:00:00");case "Year":return NowTime.AddDays(-NowTime.DayOfYear + 1).ToString("yyyy-MM-dd 00:00:00");default://出错啦!!!throw new NotImplementedException();}}/// <summary>/// 获取结束时间/// </summary>/// <param name="TimeType">Week、Month、Year</param>/// <param name="NowTime">当前时间</param>/// <returns></returns>public static string GetEndTimeByType(string TimeType, DateTime NowTime){switch (TimeType){case "Week":return NowTime.AddDays((7 - (int)NowTime.DayOfWeek) % 7).ToString("yyyy-MM-dd 23:59:59");case "Month":return NowTime.AddDays(-NowTime.AddMonths(1).Day + 1).AddMonths(1).AddDays(-1).ToString("yyyy-MM-dd 23:59:59");case "Year":return NowTime.AddDays(-NowTime.DayOfYear + 1).AddYears(1).AddDays(-1).ToString("yyyy-MM-dd 23:59:59");default://出错啦!!!throw new NotImplementedException();}}/// <summary>/// 根据第几周 获取开始时间和结束时间/// </summary>/// <param name="week">第几周</param>/// <param name="month">当前时间的月份</param>/// <returns></returns>public static Tuple<DateTime, DateTime> GetWeeks(int? week, int? month){DateTime dt = DateTime.Parse($"{DateTime.Now.Year}-{month.Value}-{DateTime.Now.Day}");string[] arrDate0 = new string[6];string[] arrDate1 = new string[6];//年int year = dt.Year;//月//当前月第一天DateTime weekStart = new DateTime(year, month.Value, 1);//该月的最后一天DateTime monEnd = weekStart.AddMonths(1).AddDays(-1);int i = 1;//当前月第一天是星期几int dayOfWeek = Convert.ToInt32(weekStart.DayOfWeek.ToString("d"));//该月第一周结束日期DateTime weekEnd = dayOfWeek == 0 ? weekStart : weekStart.AddDays(7 - dayOfWeek);string content = "";// content += "第" + i + "周起始日期: " + weekStart.ToShortDateString() + "   结束日期: " + weekEnd.ToShortDateString() + "\n";arrDate0[0] = weekStart.ToString("yyyy-MM-dd 00:00:00");arrDate1[0] = weekEnd.ToString("yyyy-MM-dd 23:59:59");//当日期小于或等于该月的最后一天while (weekEnd.AddDays(1) <= monEnd){i++;//该周的开始时间weekStart = weekEnd.AddDays(1);//该周结束时间weekEnd = weekEnd.AddDays(7) > monEnd ? monEnd : weekEnd.AddDays(7);arrDate0[i - 1] = weekStart.ToString("yyyy-MM-dd 00:00:00");arrDate1[i - 1] = weekEnd.ToString("yyyy-MM-dd 23:59:59");}content += year + "年" + month + "月共有" + i + "周\n";return Tuple.Create(DateTime.Parse(arrDate0[week.Value]), DateTime.Parse(arrDate1[week.Value]));}}
http://www.lryc.cn/news/24413.html

相关文章:

  • 算法训练营 day58 动态规划 判断子序列 不同的子序列
  • 优思学院|DFMEA是全球制造业的必修课!
  • 【Day02数据结构 空间复杂度】
  • 多数据库管理工具哪家强?ChatGPT点评,第一位并不是Navicat
  • UnityShader常用函数(UnityShader内置函数、CG和GLSL内置函数等)
  • Springboot自定义注解-1
  • 经纬度标定及大地坐标系相关概念(一)
  • synchronized关键字原理
  • 面试被问死怎么办?学会这四招,通过的机率提升30%
  • Android TV UI开发常用知识
  • Xshell 下载及安装
  • 【LeetCode】剑指 Offer(12)
  • vue在history模式下打包部署问题解决
  • Java中常见性能优化策略的总结
  • c++日志库log4cplus使用
  • 什么是接口测试,我们如何实现接口测试?
  • 随机森林在sklearn中的实现
  • [论文总结] 深度学习在农业领域应用论文笔记11
  • Android 9.0 SystemUI 状态栏屏蔽弹出的悬浮式通知
  • 商简智能计划与排程SPS在纺织行业中的应用
  • 549、RocketMQ详细入门教程系列 -【消息队列之 RocketMQ(三)】 2023.02.28
  • 如何使用SpringBoot ⽇志?
  • 山东大学数字图像处理实验:MATLAB的图像显示方法
  • Java缓存面试题——Redis解决方案
  • Flink:The generic type parameters of ‘Collector‘ are missing 类型擦除
  • MySQL查询操作
  • Redis-day01-note
  • 嵌入式C基础知识(19)
  • java 2(程序流程控制)【含例题详解】
  • 基于Conda完成创建多版本python环境