using System;
namespace Beisen.TalentPortal.Infrastructure.Helper
{
public static class DateTimeExtensions
{
public static int MonthsBetweentwoDates(DateTime startTime,DateTime endTime)
{
int yearNum = (endTime.Year - startTime.Year) * 12;
int monthNum = endTime.Month - startTime.Month;
int dayNum = endTime.Day - startTime.Day > 0 ? 1 : 0;
return yearNum + monthNum + dayNum;
}
public static string FormatDate(this DateTime dateTime)
{
var now = DateTime.Now;
if (now.Year == dateTime.Year)
{
if (now.Date == dateTime.Date)
{
TimeSpan time = now - dateTime;
if (time.Hours < 24 && time.Hours >= 1)
{
return string.Format("{0}小时前", time.Hours);
}
else if (time.Minutes < 60 && time.Minutes >= 1)
{
return string.Format("{0}分钟前", time.Minutes);
}
else if (time.Seconds < 60 && time.Seconds > 0)
{
return string.Format("{0}秒前", time.Seconds);
}
else
{
return "刚刚";
}
}
else if (now.Date == dateTime.Date.AddDays(1))
{
return string.Format("昨天 {0}", dateTime.ToString("HH:mm"));
}
else if (now.Date == dateTime.Date.AddDays(2))
{
return string.Format("前天 {0}", dateTime.ToString("HH:mm"));
}
else
{
return string.Format("{0}月{1}日 {2}", dateTime.Month, dateTime.Day, dateTime.ToString("HH:mm"));
}
}
else
{
return string.Format("{3}年{0}月{1}日 {2}", dateTime.Month, dateTime.Day, dateTime.ToString("HH:mm"), dateTime.Year);
}
return string.Empty;
}
/// <summary>
/// 转换日期为指定的格式 yyyy/MM/dd HH:mm:ss
/// </summary>
public static string FormatDateCn(this DateTime dateTime)
{
return dateTime.ToString("yyyy/MM/dd HH:mm:ss");
}
/// <summary>
/// 转换日期为指定的格式 yyyy/MM/dd HH:mm:ss
/// </summary>
public static string FormatDateCn(this string dateTime)
{
if (string.IsNullOrWhiteSpace(dateTime))
return null;
DateTime time;
DateTime.TryParse(dateTime, out time);
return time.ToString("yyyy/MM/dd HH:mm:ss", System.Globalization.DateTimeFormatInfo.InvariantInfo);
}
/// <summary>
/// 转换日期为指定的格式 yyyy/MM/dd HH:mm:ss
/// </summary>
public static string FormatDateCn(this DateTime? dateTime)
{
if (dateTime == null || !dateTime.HasValue)
return "";
return dateTime.Value.ToString("yyyy/MM/dd HH:mm:ss");
}
/// <summary>
/// 转换日期为指定的格式 yyyy/MM/dd HH:mm:ss
/// </summary>
public static string FormatShortDate(this DateTime dateTime)
{
return dateTime.ToString("yyyy/MM/dd", System.Globalization.DateTimeFormatInfo.InvariantInfo);
}
/// <summary>
/// 转换日期为指定的格式 yyyy/MM/dd HH:mm:ss
/// </summary>
public static string FormatShortDate(this string dateTime)
{
if (string.IsNullOrWhiteSpace(dateTime))
return null;
DateTime time;
DateTime.TryParse(dateTime, out time);
return time.ToString("yyyy/MM/dd", System.Globalization.DateTimeFormatInfo.InvariantInfo);
}
/// <summary>
/// 转换日期为指定的格式 yyyy/MM/dd HH:mm:ss
/// </summary>
public static string FormatShortDateCn(this DateTime? dateTime)
{
if (dateTime == null || !dateTime.HasValue)
return "";
return dateTime.Value.ToString("yyyy/MM/dd");
}
/// <summary>
/// 所在周的起止时间
/// </summary>
/// <param name="dateTime"></param>
/// <returns></returns>
public static DateTime[] DatesIncludeDay(this DateTime dateTime)
{
DateTime[] dts = new DateTime[2];
int dayofweek = DayOfWeek(dateTime);
if(dayofweek==0)
{
dts[0] = dateTime.AddDays(-7);
dts[1] = dateTime.AddDays(6);
}
else
{
dts[0] = dateTime.AddDays(-dayofweek);
dts[1] = dateTime.AddDays(6 - dayofweek);
}
return dts;
}
/// <summary>
/// 计算星期几,转换为数字
/// </summary>
/// <param name="dt">某天的日期</param>
/// <returns></returns>
private static int DayOfWeek(DateTime dt)
{
string strDayOfWeek = dt.DayOfWeek.ToString().ToLower();
int intDayOfWeek = 0;
switch (strDayOfWeek)
{
case "monday":
intDayOfWeek = 1;
break;
case "tuesday":
intDayOfWeek = 2;
break;
case "wednesday":
intDayOfWeek = 3;
break;
case "thursday":
intDayOfWeek = 4;
break;
case "friday":
intDayOfWeek = 5;
break;
case "saturday":
intDayOfWeek = 6;
break;
case "sunday":
intDayOfWeek = 0;
break;
}
return intDayOfWeek;
}
/// <summary>
/// 计算星期几,转换为汉字
/// </summary>
/// <param name="dt">某天的日期</param>
/// <returns></returns>
public static string DayOfChWeek(this DateTime dt)
{
var strDayOfWeek = dt.DayOfWeek;
switch ((int)strDayOfWeek)
{
case 1:
return "一";
case 2:
return "二";
case 3:
return "三";
case 4:
return "四";
case 5:
return "五";
case 6:
return "六";
case 0:
return "日";
}
return string.Empty;
}
/// <summary>
/// DateTime时间格式转换为Unix时间戳格式
/// </summary>
/// <param name="time"> DateTime时间格式</param>
/// <returns>Unix时间戳格式</returns>
public static int ConvertDateTimeInt(this DateTime time)
{
DateTime startTime = TimeZone.CurrentTimeZone.ToLocalTime(new System.DateTime(1970, 1, 1));
return (int)(time - startTime).TotalSeconds;
}
}
}
以上是用的后台程序进行的计算,后来发现了一个更好用的前台JS 插件:moment
网址:http://momentjs.com
相关推荐
基于LABVIEW的一个曲线上升沿时间计算
### RC延时电路的延时时间计算及其应用 #### 延时时间计算公式解析 在电子技术领域,RC(电阻-电容)电路是非常基础且重要的组成部分之一,广泛应用于信号处理、滤波器设计、振荡器以及延时电路等场景。本文将详细...
FPGA SPI 加载时间计算 FPGA 选择 SPI 启动时的启动时间计算方法是 FPGA 设计中非常重要的一步骤。本文将详细叙述 FPGA 选择 SPI 启动时的启动时间计算方法。 一、FPGA 加载时间(SPI) FPGA 加载时间是指 FPGA ...
"梯控时间计算软件"是一种专门用于处理与电梯控制系统中时间相关的计算工具。在现代高层建筑中,电梯系统的效率和安全至关重要,而时间计算是优化电梯运行的关键环节。这款软件的目的是帮助用户分析电梯的数据,以便...
适合各类请假 时间计算,除去双休,计算固定工作日时间数,可以自定义上班时间 午休时间 下班时间,非常好用的时间计算。
首先,让我们来看Java版本的日出日落时间计算。Java提供了丰富的库来处理日期和时间,如Java 8引入的`java.time`包。通常,计算日出日落会涉及到地理坐标(经度和纬度)以及当地时区。开发者可能需要利用`java.time....
本篇文章将详细介绍两种常见的可充电池类型——锂离子电池和镍氢电池的充电时间计算方法,并提供相应的公式。 1. 锂离子电池充电时间计算 锂离子电池的充电时间计算相对简单,基本公式为:(电池容量/充电器的输出...
LoRa(Long Range)是一种基于扩频技术的远距离...总结来说,"LoRa数据速率,功率,空中时间计算工具"是LoRa网络设计和优化的有力辅助,它帮助我们理解和调整影响LoRa性能的关键因素,以实现更高效、可靠的物联网连接。
各种时间计算模型,各种时间转换格式,获取各种格式的时间,一一尽有
新一代Lora芯片SX1261,sx1262,sx1268传输时间计算,方便计算传播延时。官网最新的资源工具包
日出日落时间计算.html (js) js脚本
随经纬度变化的日出日落时间计算方法 需要输入经纬和时间
根据经纬度和时间 计算太阳高度角和方位角
智能电能表的起动时间、潜动时间计算小工具。
论文研究-基于活动重叠的DSM项目时间计算及排序优化.pdf, 研发活动之间常存在顺序重叠和反馈重叠,重叠并行性会加快项目的进度,但又存在返工风险.为此,采用设计结构矩阵...
以下是关于NOR和装卸时间计算的关键知识点: 1. NOR的递交时间: - 通常情况下,船东的义务是在抵达第一装货港时递交通知书,以便通知装货人船舶已就绪。 - 在Laycan(约定的装卸窗口期)之前,船东可以递交NOR,...
具体到RC复位电路的时间计算,当电源VCC上电时,电容C开始充电。在充电初期,电容两端的电压UT会逐渐上升。假设电容初始电压U0为0V,要计算充电至一定电压值UT所需的时间T,可以使用以下公式进行计算: 对于低电平...
用于计算室内混响时间,文件整合了计算理论依据,不同吸声结构的吸声系数表等内容,可方便设置吸声结构,调整混响时间。
包含几乎全部可以用到的时间计算方法 时间差 每月星期 每月第几个星期几等等
Profibus循环时间计算,对控制的时间有帮助。