using System;

 namespace ConsoleAppDemo
{
class Program
{
static void Main(string[] args)
{
DateTime now = DateTime.Now;
Console.WriteLine($"First Day Of Month:{now.FirstDayOfMonth()}");
Console.WriteLine($"Last Day Of Month:{now.LastDayOfMonth()}");
Console.WriteLine($"First Day Of Previous Month:{now.FirstDayOfPreviousMonth()}");
Console.WriteLine($"Last Day Of Previous Month:{now.LastDayOfPreviousMonth()}");
Console.WriteLine($"First Day Of Previous Week:{now.FirstDayOfPreviousWeek()}");
Console.WriteLine($"Last Day Of Previous Week:{now.LastDayOfPreviousWeek()}");
Console.ReadKey();
}
} public static class DateTimeExtension
{
/// 取得某月的第一天
/// </summary>
/// <param name="datetime">要取得月份第一天的时间</param>
/// <returns></returns>
public static DateTime FirstDayOfMonth(this DateTime datetime)
{
return datetime.AddDays( - datetime.Day);
}
/// <summary>
/// 取得某月的最后一天
/// </summary>
/// <param name="datetime">要取得月份最后一天的时间</param>
/// <returns></returns>
public static DateTime LastDayOfMonth(this DateTime datetime)
{
return FirstDayOfMonth(datetime).AddMonths().AddDays(-);
} /// <summary>
/// 取得上个月第一天
/// </summary>
/// <param name="datetime">要取得上个月第一天的当前时间</param>
/// <returns></returns>
public static DateTime FirstDayOfPreviousMonth(this DateTime datetime)
{
return FirstDayOfMonth(datetime).AddMonths(-);
} /// <summary>
/// 取得上个月的最后一天
/// </summary>
/// <param name="datetime">要取得上个月最后一天的当前时间</param>
/// <returns></returns>
public static DateTime LastDayOfPreviousMonth(this DateTime datetime)
{
return FirstDayOfMonth(datetime).AddDays(-);
} /// <summary>
/// 取得上周的第一天
/// </summary>
/// <param name="datetime">要取得上周第一天的当前时间</param>
/// <returns></returns>
public static DateTime FirstDayOfPreviousWeek(this DateTime datetime)
{
return LastDayOfPreviousWeek(datetime).AddDays(-);
} /// <summary>
/// 取得上周的最后一天
/// </summary>
/// <param name="datetime">要取得上周最后一天的当前时间</param>
/// <returns></returns>
public static DateTime LastDayOfPreviousWeek(this DateTime datetime)
{
int dayOfWeek = (int)datetime.DayOfWeek;
return datetime.AddDays(dayOfWeek == ? - : -dayOfWeek);
}
} }

C# 取得上月月头和月尾、上周的第一天和最后一天。的更多相关文章

  1. SQL SERVER中求上月、本月和下月的第一天和最后一天 DATEADD DATEDIFF

    SQL SERVER中求上月.本月和下月的第一天和最后一天   1.上月的第一天 SELECT CONVERT(CHAR(10),DATEADD(month,-1,DATEADD(dd,-DAY(GE ...

  2. SQL SERVER中求上月、本月和下月的第一天和最后一天

    1.上月的第一天 SELECT CONVERT(CHAR(10),DATEADD(month,-1,DATEADD(dd,-DAY(GETDATE())+1,GETDATE())),111) 2.上月 ...

  3. SQL SERVER中求上月、本月和下月的第一天和最后一天[转]

    --上月的第一天 ),,,) ,,) --上月的最后一天 ),,,)),)+' 23:59:59' ,,)) --本月的第一天 ),,) ),)') --本月的最后一天 ),,,,)),)+' 23: ...

  4. SQL获取本周,上周,本月,上月第一天和最后一天[注:本周从周一到周天]

    DECLARE @ThisWeekStartTime NVARCHAR(100),@ThisWeekEndTime NVARCHAR(100),--本周 @LastWeekStartTime NVAR ...

  5. php获取本周周一、周日时间,上周周一、周日时间,本月第一天,本月最后一天,上个月第一天,最后一天时间

    权声明:本文为博主原创文章,未经博主允许不得转载. //这个星期的星期一 // @$timestamp ,某个星期的某一个时间戳,默认为当前时间 // @is_return_timestamp ,是否 ...

  6. ASP获取上月本月下月的第一天和最后一天

    上月第一天:<%=dateadd("m",-1,year(date)&"-"&month(date)&"-1" ...

  7. php获取当月天数及当月第一天及最后一天、上月第一天及最后一天实现方法

    1.获取上个月第一天及最后一天.    echo date('Y-m-01', strtotime('-1 month'));    echo "<br/>";     ...

  8. php -- 获取当月天数及当月第一天及最后一天、上月第一天及最后一天(备忘)

    Learn From :http://www.jxbh.cn/newshow.asp?id=1635&tag=2 //1.获取上个月第一天及最后一天. date('Y-m-01', strto ...

  9. Sql Server中查询今天、昨天、本周、上周、本月、上月数据

    Sql Server中查询今天.昨天.本周.上周.本月.上月数据 在做Sql Server开发的时候有时需要获取表中今天.昨天.本周.上周.本月.上月等数据,这时候就需要使用DATEDIFF()函数及 ...

随机推荐

  1. web唤起whatsapp客户端通过号码联系

    如果安装了whatsapp客户端,只需跳转 window.location.href = "https://wa.me/号码"; 如果有区号则只需在前面直接加区号,例如加香港区号: ...

  2. Solidity合约记录——(三)如何在合约中对操作进行权限控制

    合约中一般会有多种针对不同数据的操作:例如对于存证内容的增加.更新及查询,若不进行一套符合要求的权限控制,事实上整个合约在真实环境下是没有多少使用价值的.那么应当如何对合约的权限进行划分?我们针对So ...

  3. winSocket编程(十)完成端口

    //本篇为转贴 本系列里完成端口的代码在两年前就已经写好了,但是由于许久没有写东西了,不知该如何提笔,所以这篇文档总是在酝酿之中……酝酿了两年之后,终于决定开始动笔了,但愿还不算晚….. 这篇文档我非 ...

  4. Junit 命令行测试 报错:Could not find class 理解及解决方法

    一.报错 : 『Could not find class』 下面给出三个示例比较,其中只有第一个是正确的. 1. MyComputer:bin marikobayashi$ java -cp .:./ ...

  5. 在Git中设置自己的姓名

    在Git中,自己的姓名与每一个commit提交绑定在一起.如果你在使用Azure DevOps Server中的Git Repo时,一定要注意commit中的提交者与服务器上的推送者,是两个概念. 在 ...

  6. Android精通教程V

    前言 大家好,给大家带来Android精通教程V的概述,希望你们喜欢 前言 如果你想学习Android开发,那你就要了解Java编程,这是基础,也是重点,如果没学Java语法就先学习,再来学Andro ...

  7. Linux - 基础命令汇总

    珠玉在前,不再赘言. 60个命令 对Linux新手非常有用的20个命令 对中级Linux用户非常有用的20个命令 对Linux专家非常有用的20个命令 一些技巧 最实用的 Linux 命令行使用技巧 ...

  8. LeetCode:144_Binary Tree Preorder Traversal | 二叉树的前序遍历 | Medium

    题目:Binary Tree Preorder Traversal 二叉树的前序遍历,同样使用栈来解,代码如下: struct TreeNode { int val; TreeNode* left; ...

  9. Excel透视技巧-三级分类统计名单、分类统计数据

    Excel透视技巧-三级分类统计名单.分类统计数据 基础数据 透视表1--三级分类统计名单 透视表2-分类统计数据

  10. RPC的原理总结

    一.RPC的引入 早期单机时代,一台电脑上运行多个进程,大家各干各的,老死不相往来.假如A进程需要一个画图的功能,B进程也需要一个画图的功能,程序员就必须为两个进程都写一个画图的功能.这不是整人么?于 ...