应无所住,而生其心
排名
1
文章
860
粉丝
112
评论
163
net core webapi post传递参数
庸人 : 确实坑哈,我也是下班好了好几次,发现后台传递对象是可以的,但...
百度编辑器自定义模板
庸人 : 我建议换个编辑器,因为现在百度富文本已经停止维护了,用tinymec...
ICP备案 :渝ICP备18016597号-1
网站信息:2018-2025TNBLOG.NET
技术交流:群号656732739
联系我们:contact@tnblog.net
公网安备:50010702506256
欢迎加群交流技术

.net获取年初,年末。从一年的第一天输出到年末。从1月1号开始输出到12月31号。从一年的第一天输出到当然日期。输出1到12月。月初时间和月末时间。时间日期相关。某个月最后一天。本周周一与周日。本周,本月,每周,每月

3947人阅读 2020/11/19 18:29 总访问:5182421 评论:0 收藏:0 手机
分类: .NET

获取年初,年末,从一年的第一天输出到年末

方法1

  1. DateTime startYear = new DateTime(DateTime.Now.Year, 1, 1); //本年年初
  2. DateTime endYear = new DateTime(DateTime.Now.Year, 12, 31); //本年年末
  3. //获取一年的天数
  4. int days = (DateTime.IsLeapYear(DateTime.Now.Year) ? 366 : 365);
  5. //从一年的第一天输出到年末
  6. for (int i = 0; i < days; i++)
  7. {
  8. Console.WriteLine(startYear.Date.AddDays(i).ToShortDateString());
  9. }

效果如下
从1月1号开始

输出到12月31号

方法2:

  1. DateTime startYear = new DateTime(DateTime.Now.Year, 1, 1); //本年年初
  2. DateTime endYear = new DateTime(DateTime.Now.Year, 12, 31); //本年年末
  3. //通过日期差来计算天数
  4. double days = (endYear - startYear).TotalDays;
  5. Console.WriteLine(days);
  6. //从一年的第一天输出到年末
  7. for (int i = 0; i <= days; i++)
  8. {
  9. Console.WriteLine(startYear.Date.AddDays(i).ToShortDateString());
  10. }

从一年的第一天输出到当前日期

  1. DateTime startYear = new DateTime(DateTime.Now.Year, 1, 1); //本年年初
  2. //通过日期差来计算天数
  3. double days = (DateTime.Now - startYear).TotalDays;
  4. Console.WriteLine(days);
  5. //从一年的第一天输出到当然日期
  6. for (int i = 0; i <= days; i++)
  7. {
  8. Console.WriteLine(startYear.Date.AddDays(i).ToShortDateString());
  9. }

输出1到12月

  1. DateTime startYear = new DateTime(DateTime.Now.Year, 1, 1); //本年年初
  2. for (int i = 0; i < 12; i++)
  3. {
  4. Console.WriteLine(startYear.AddMonths(i).ToString("yyyy-MM-dd"));
  5. }

根据传过来的月份,计算这个月最后一天

  1. /// <summary>
  2. /// 根据传过来的月份,计算这个月最后一天
  3. /// </summary>
  4. /// <param name="month"></param>
  5. /// <returns></returns>
  6. public DateTime GetMonthEndTime(DateTime month)
  7. {
  8. //本月第一天时间
  9. DateTime stime = month.AddDays(1 - (month.Day));
  10. //获得某年某月的天数
  11. int y = month.Date.Year;
  12. int m = month.Date.Month;
  13. int dayCount = DateTime.DaysInMonth(y, m);
  14. DateTime endtime = stime.AddDays(dayCount - 1);
  15. return endtime;
  16. }

输出某月的月初时间和月末时间

封装一个方法

  1. /// <summary>
  2. /// 根据时间点计算当月开始时间和结束时间
  3. /// </summary>
  4. /// <param name="date"></param>
  5. /// <returns></returns>
  6. public static DateTime[] GetMonthStatTimeAndEndTime(DateTime date)
  7. {
  8. //你可能需要处理一下时区
  9. //date = date.ToCstTime();
  10. //本月第一天时间
  11. DateTime stime = date.AddDays(1 - (date.Day));
  12. //获得某年某月的天数
  13. int y = date.Date.Year;
  14. int m = date.Date.Month;
  15. int dayCount = DateTime.DaysInMonth(y, m);
  16. DateTime etime = stime.AddDays(dayCount - 1);
  17. return new List<DateTime>() { stime, etime }.ToArray();
  18. //return new List<DateTime>() { DateTime.Parse("2000-1-1"), DateTime.Parse("2022-4-9") }.ToArray();
  19. }

调用:

获取从1月至12月的月初时间和月末时间

  1. DateTime startYear = new DateTime(DateTime.Now.Year, 1, 1); //本年年初
  2. for (int i = 0; i < 12; i++)
  3. {
  4. DateTime[] dateTimes = DateTimeTools.GetMonthStatTimeAndEndTime(startYear.AddMonths(i));
  5. Console.WriteLine(dateTimes[0].ToString("yyyy-MM-dd") + "--" + dateTimes[1].ToString("yyyy-MM-dd"));
  6. }

获取从1月至当前月的月初时间和月末时间

  1. DateTime startYear = new DateTime(DateTime.Now.Year, 1, 1); //本年年初
  2. //获取当前月
  3. int month = DateTime.Now.Month;
  4. for (int i = 0; i < month; i++)
  5. {
  6. DateTime[] dateTimes = DateTimeTools.GetMonthStatTimeAndEndTime(startYear.AddMonths(i));
  7. Console.WriteLine(dateTimes[0].ToString("yyyy-MM-dd") + "--" + dateTimes[1].ToString("yyyy-MM-dd"));
  8. }

C#获取本周的周一以及周日

  1. /// <summary>
  2. /// C#获取本周的周一以及周日
  3. /// </summary>
  4. /// <returns></returns>
  5. public static DateTime[] GetWeekStartAndEnd()
  6. {
  7. DateTime dt = DateTime.Now;
  8. int dayOfWeek = -1 * (int)dt.Date.DayOfWeek;
  9. //Sunday = 0,Monday = 1,Tuesday = 2,Wednesday = 3,Thursday = 4,Friday = 5,Saturday = 6,
  10. DateTime weekStartTime = dt.AddDays(dayOfWeek + 1);//取本周一
  11. if (dayOfWeek == 0) //如果今天是周日,则开始时间是上周一
  12. {
  13. weekStartTime = weekStartTime.AddDays(-7);
  14. }
  15. return new List<DateTime>() { weekStartTime.Date, weekStartTime.Date.AddDays(6) }.ToArray();
  16. }

按本日,本周,本月的时间范围查询

  1. DateTime beginDate = DateTime.Now.Date;
  2. DateTime endDate = _params.dateTime.Date.AddDays(1);
  3. // 按天统计
  4. if (_params.Type == "dateParamDay")
  5. {
  6. endDate = beginDate.Date.AddDays(1);
  7. }
  8. // 按周统计
  9. if (_params.Type == "dateParamWeek")
  10. {
  11. int dayOfWeek = -1 * (int)beginDate.Date.DayOfWeek;
  12. DateTime weekStartTime = beginDate.AddDays(dayOfWeek + 1);//取本周一
  13. if (dayOfWeek == 0) //如果今天是周日,则开始时间是上周一
  14. {
  15. weekStartTime = weekStartTime.AddDays(-7);
  16. }
  17. beginDate = weekStartTime;
  18. endDate = weekStartTime.Date.AddDays(7);
  19. }
  20. // 按月统计
  21. if (_params.Type == "dateParamMonth")
  22. {
  23. //本月第一天时间
  24. DateTime stime = beginDate.AddDays(1 - (beginDate.Day));
  25. beginDate = stime;
  26. endDate = beginDate.AddMonths(1);
  27. }
  28. // 根据选择的时间范围查询
  29. List<StuDailyAssignment> stuDailyAssignments = BaseDal.Db.Queryable<StuDailyAssignment>().Where(a => studentIDList.Contains(a.StuID) && a.DAStatus != 1 && a.CreateTime >= beginDate && a.CreateTime < endDate).ToList();

欢迎加群讨论技术,1群:677373950(满了,可以加,但通过不了),2群:656732739。有需要软件开发,或者学习软件技术的朋友可以和我联系~(Q:815170684)

评价

net core 使用 EF Code First

下面这些内容很老了看这篇:https://www.tnblog.net/aojiancc2/article/details/5365 项目使用多层,把数据库访问...

cAPS.net 保存base64位格式的图片

publicvoidUpload() { //取出图片对应的base64位字符 stringimgBase=Request[&quot;imgBase&quot;]; //c#里边的base6...

Quartz.net实例动态改变周期调度misfire、Cron

Quartz:Java编写的开源的任务调度作业框架 类似Timer之类定时执行的功能,但是更强大Quartz.NET:是把Quartz转成C# NuGet...

.net Windows服务发布、安装、卸载、监听脚本服务调试

一、脚本 为方便不用每次都去写安装卸载的脚本1.安装脚本@echooff @echo开始安装【服务】 %SystemRoot%\Microsoft.NET\Fr...

c、VB.net中全角半角转换方法

///&lt;summary&gt; ///转全角的函数(SBCcase) ///&lt;/summary&gt; ///&lt;paramname=&quot;input&quot;&gt;任意字符串...

.net mvc分部页.net core分部页

.net分部页的三种方式第一种:@Html.Partial(&quot;_分部页&quot;)第二种:@{ Html.RenderPartial(&quot;分部页&quot;);}...

C.net 配合小程序实现经过第三方服务器中转文件

某些时候,微信小程序前段上传文件的时候需要经过第三方服务器再将文件上传到客户的服务器;操作如下:1:(小程序内向中端服...

.net实现QQ邮箱发送邮件功能

1、微软已经帮我们封装好了发送邮件的类MailMessage,MailMessage类构造一些邮件信息,然后通过SmtpClient进行邮件发送。Mai...

StackExchange.Redis操作redis(net core支持)

官方git开源地址https://github.com/StackExchange/StackExchange.Redis官方文档在docs里边都是官方的文档通过nuget命令下...

windows 自带的netsh进行端口映射

使用netsh 把本地任意ip的25566端口 映射到192.168.81.234的25565端口netshinterfaceportproxyaddv4tov4listenaddress=0.0....

确保.net程序始终以管理员身份运行

usingSystem; usingSystem.Collections.Generic; usingSystem.Linq; usingSystem.Text; usingSystem.Threading.Tasks; ...

ASP.net Timer细节处理

Timer的用法:1:本人称之为计时器,是asp.net官方的一种。用法即是计时所用 2:关于计时有很多中方式,本人学识有限,暂...

.net core 使用session

tip:net core 2.2后可以直接启用session了,不用在自己添加一次session依赖,本身就添加了使用nuget添加引用Microsoft.AspN...

通俗易懂什么是.net?什么是.net Framework?什么是.net core?

朋友圈@蓝羽 看到一篇文章写的太详细太通俗了,搬过来细细看完,保证你对.NET有个新的认识理解原文地址:https://www.cnblo...

asp.net core2.0 依赖注入 AddTransient与AddScoped的区别

asp.net core主要提供了三种依赖注入的方式其中AddTransient与AddSingleton比较好区别AddTransient瞬时模式:每次都获取一...

asp.net主动推送百度seo

虽然可以使用百度提供的js自动推送,但是估计度娘还是希望主动推送一点。哈哈^_^,女孩子嘛大多都喜欢被动一点。publicclass...