C#工具类之日期扩展类
/// <summary>
/// DateTimeHelper
/// </summary>
public static class DateTimeHelper
{
/// <summary>
/// Unix时间起始时间
/// </summary>
public static readonly DateTime StarTime = new DateTime(, , ); /// <summary>
/// 常用日期格式
/// </summary>
public static readonly string CommonDateFormat = "yyyy-MM-dd HH:mm:ss.fff"; /// <summary>
/// 周未定义
/// </summary>
public static readonly DayOfWeek[] Weekend = { DayOfWeek.Saturday, DayOfWeek.Sunday }; /// <summary>
/// 获取从Unix起始时间到给定时间的毫秒数
/// </summary>
/// <param name="datetime"></param>
/// <returns></returns>
public static long GetMillisecondsSince1970(this DateTime datetime)
{
var ts = datetime.Subtract(StarTime);
return (long)ts.TotalMilliseconds;
} /// <summary>
/// 获取从Unix起始时间到给定时间的秒数
/// </summary>
/// <param name="datetime"></param>
/// <returns></returns>
public static long GetSecondsSince1970(this DateTime datetime)
{
var ts = datetime.Subtract(StarTime);
return (long)ts.TotalSeconds;
} /// <summary>
/// 明天
/// </summary>
/// <param name="date"></param>
/// <returns></returns>
public static DateTime Tomorrow(this DateTime date)
{
return date.AddDays();
} /// <summary>
/// 昨天
/// </summary>
/// <param name="date"></param>
/// <returns></returns>
public static DateTime Yesterday(this DateTime date)
{
return date.AddDays(-);
} /// <summary>
/// 常用日期格式化字符串
/// </summary>
/// <param name="date"></param>
/// <returns></returns>
public static string ToCommonFormat(this DateTime date)
{
return date.ToString(CommonDateFormat);
} /// <summary>
/// 是否是周未
/// </summary>
/// <param name="date"></param>
/// <returns></returns>
public static bool IsWeekend(this DateTime date)
{
return Weekend.Any(p => p == date.DayOfWeek);
} /// <summary>
/// 是否是工作日
/// </summary>
/// <param name="date"></param>
/// <returns></returns>
public static bool IsWeekDay(this DateTime date)
{
return !date.IsWeekend();
} /// <summary>
/// 给定月份的第1天
/// </summary>
/// <param name="date"></param>
/// <returns></returns>
public static DateTime GetFirstDayOfMonth(this DateTime date)
{
return new DateTime(date.Year, date.Month, );
} /// <summary>
/// 给定月份的最后1天
/// </summary>
/// <param name="date"></param>
/// <returns></returns>
public static DateTime GetLastDayOfMonth(this DateTime date)
{
return date.GetFirstDayOfMonth().AddMonths().AddDays(-);
} /// <summary>
/// 给定日期所在月份第1个星期几所对应的日期
/// </summary>
/// <param name="date">给定日期</param>
/// <param name="dayOfWeek">星期几</param>
/// <returns>所对应的日期</returns>
public static DateTime GetFirstWeekDayOfMonth(this DateTime date, DayOfWeek dayOfWeek)
{
var dt = date.GetFirstDayOfMonth();
while (dt.DayOfWeek != dayOfWeek)
dt = dt.AddDays(); return dt;
} /// <summary>
/// 给定日期所在月份最后1个星期几所对应的日期
/// </summary>
/// <param name="date">给定日期</param>
/// <param name="dayOfWeek">星期几</param>
/// <returns>所对应的日期</returns>
public static DateTime GetLastWeekDayOfMonth(this DateTime date, DayOfWeek dayOfWeek)
{
var dt = date.GetLastDayOfMonth();
while (dt.DayOfWeek != dayOfWeek)
dt = dt.AddDays(-); return dt;
} /// <summary>
/// 早于给定日期
/// </summary>
/// <param name="date"></param>
/// <param name="other"></param>
/// <returns></returns>
public static bool IsBefore(this DateTime date, DateTime other)
{
return date.CompareTo(other) < ;
} /// <summary>
/// 晚于给定日期
/// </summary>
/// <param name="date"></param>
/// <param name="other"></param>
/// <returns></returns>
public static bool IsAfter(this DateTime date, DateTime other)
{
return date.CompareTo(other) > ;
} /// <summary>
/// 给定日期最后一刻,精确到23:59:59.999
/// </summary>
/// <param name="date"></param>
/// <returns></returns>
public static DateTime EndTimeOfDay(this DateTime date)
{
return new DateTime(date.Year, date.Month, date.Day, , , , );
} /// <summary>
/// 给定日期开始一刻,精确到0:0:0.0
/// </summary>
/// <param name="date"></param>
/// <returns></returns>
public static DateTime StartTimeOfDay(this DateTime date)
{
return date.Date;
} /// <summary>
/// 给定日期的中午,精确到12:0:0.0
/// </summary>
/// <param name="date"></param>
/// <returns></returns>
public static DateTime NoonOfDay(this DateTime date)
{
return new DateTime(date.Year, date.Month, date.Day, , , );
} /// <summary>
/// 当前日期与给定日期是否是同一天
/// </summary>
/// <param name="date">当前日期</param>
/// <param name="dateToCompare">给定日期</param>
/// <returns></returns>
public static bool IsDateEqual(this DateTime date, DateTime dateToCompare)
{
return (date.Date == dateToCompare.Date);
} /// <summary>
/// 判断是否为今天
/// </summary>
/// <param name="date"></param>
/// <returns></returns>
public static bool IsToday(this DateTime date)
{
return (date.Date == DateTime.Now.Date);
} /// <summary>
/// 给定日期所在月份共有多少天
/// </summary>
/// <param name="date"></param>
/// <returns></returns>
public static int GetCountDaysOfMonth(this DateTime date)
{
return date.GetLastDayOfMonth().Day;
}
}
C#工具类之日期扩展类的更多相关文章
- [Django REST framework - 视图组件之视图基类、视图扩展类、视图子类、视图集]
[Django REST framework - 视图组件之视图基类.视图扩展类.视图子类.视图集] 视图继承关系 详图见文章末尾 视图组件可点我查看 两个视图基类:APIView.GenericAP ...
- 日期类时间类,日期时间类,单例模式,装箱与拆箱,数字类随机数,BigDecimal总结
1.日期类,时间类,日期时间类 初步日期使用方法及格式转换方法(旧方法): 格式://Mon Jul 30 11:26:05 CST 2018 年月日时分秒 CST代表北 ...
- java基础22 日期类、日历类、日期格式类
package com.dhb.code; import java.text.ParseException; import java.text.SimpleDateFormat; import jav ...
- Java的日期类和日期格式化类
日期类: Date date = new Date(); // 获取当前的系统时间 2 System.out.println("年份:"+ date.getYear()); Cal ...
- day15--Java常用类之日期相关类
Java常用类 3.日期相关类 3.1Date类 在标准Java类库中包含一个Date类,它的对象表示一个特定的瞬间,精确到毫秒.在网上商城下单时,在对报销单进行审核时,都需要获取当前的时间,通过Da ...
- NSDate时间类/NSDateFormatter日期格式类
#import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { // NSDate 时间类 继承自N ...
- Object类、日期时间类、system类及StringBuilder字符串容器
一.Object类常用API 1.1 概述 java.lang.Object类是Java语言中的根类,即所有类的父类.Object类中描述的所有方法子类都可以使用.在对象实例化的时候,最终找的父类就是 ...
- java_Object类、日期时间类、System类、包装类
Object类 java.lang.Object 类是所有类的父类.它描述的所有方法子类都可以使用.在对象实例化的时候,最终找的父类就是Object. 如果一个类没有特别指定父类, 那么默认则继承自O ...
- C#工具类之素数扩展类
/// <summary> /// 素数帮忙类 /// 本类是从.net源码 类 internal static class HashHelpers 类里抽取相应的代码 /// https ...
随机推荐
- mongoDB的学习
一:linux下安装mongoDB 1.在linux系统上安装MongoDB 上传安装包mongodb-linux-x86_64-3.0.6.tgz到linux系统的home目录下 tar -zxvf ...
- ROS探索总结(四)——简单的机器人仿真
前边我们已经介绍了ROS的基本情况,以及新手入门ROS的初级教程,现在就要真正的使用ROS进入机器人世界了.接下来我们涉及到的很多例程都是<ROS by Example>这本书的内容,我是 ...
- __tostring和__invoke 方法
首先放上代码: <?php class MagicTest{ //__tostring会在把对象转换为string的时候自动调用 public function __tostring() { r ...
- var_dump — 打印变量的相关信息
<?php $a = array( 1 , 2 , array( "a" , "b" , "c" )); var_dump ( $a ...
- cocos2d中setBlendFunc设置颜色混合方案
CCSprite有一个ccBlendFunc类型的blendFunc_结构体成员,可以用来设置描绘时的颜色混合方案.ccBlendFunc包含了一个src和一个dst,分别表示源和目标的运算因子. 如 ...
- Angular04 组件动态地从外部接收值、在组件中使用组件
一.组件从外部接收值 1 修改组件的ts文件,让组件的属性可以从外部接收值 1.1 导入Input注解对象 1.2 在属性变量前面添加 @Input() 注解 1.3 去掉构造器中的属性变量赋值语句 ...
- jQuery实现按钮5秒后可以点击
废话少说,直接上代码: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> & ...
- 35-迷宫寻宝(一)-NYOJ82
http://acm.nyist.edu.cn/JudgeOnline/problem.php?pid=82 迷宫寻宝(一) 时间限制:1000 ms | 内存限制:65535 KB 难度:4 ...
- tcpdump/HTTP协议实践
tcpdump/HTTP协议实践 客户端: CLOSED->SYN_SENT->ESTABLISHED->FIN_WAIT_1->FIN_WAIT_2->TIME_WAI ...
- git命令(一)
git中每个版本的保存是记录每个版本的快照,只在乎这个文件是否改变. Workspace:工作区 Index / Stage:暂存区 Repository:仓库区(或本地仓库) Remote:远程仓库 ...