`
highfly-s
  • 浏览: 100753 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

时间的计算

 
阅读更多

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

分享到:
评论

相关推荐

    FPGA SPI加载时间计算

    FPGA SPI 加载时间计算 FPGA 选择 SPI 启动时的启动时间计算方法是 FPGA 设计中非常重要的一步骤。本文将详细叙述 FPGA 选择 SPI 启动时的启动时间计算方法。 一、FPGA 加载时间(SPI) FPGA 加载时间是指 FPGA ...

    RC延时电路的延时时间计算公式

    ### RC延时电路的延时时间计算及其应用 #### 延时时间计算公式解析 在电子技术领域,RC(电阻-电容)电路是非常基础且重要的组成部分之一,广泛应用于信号处理、滤波器设计、振荡器以及延时电路等场景。本文将详细...

    开关电源X 电容放电时间计算公式

    开关电源中的X电容放电时间计算是电力电子领域中一个重要的基础知识,尤其对于电源设计者来说至关重要。X电容通常被用作电源输入端的交流线路滤波器,用于抑制电源线上的电磁干扰。根据IEC标准,开关电源在断电后...

    梯控时间计算软件

    "梯控时间计算软件"是一种专门用于处理与电梯控制系统中时间相关的计算工具。在现代高层建筑中,电梯系统的效率和安全至关重要,而时间计算是优化电梯运行的关键环节。这款软件的目的是帮助用户分析电梯的数据,以便...

    适合各类请假 时间计算,除去双休,计算固定工作日时间数,可以自定义上班时间 午休时间 下班时间,非常好用的时间计算。

    适合各类请假 时间计算,除去双休,计算固定工作日时间数,可以自定义上班时间 午休时间 下班时间,非常好用的时间计算。

    java 日出日落时间计算

    首先,让我们来看Java版本的日出日落时间计算。Java提供了丰富的库来处理日期和时间,如Java 8引入的`java.time`包。通常,计算日出日落会涉及到地理坐标(经度和纬度)以及当地时区。开发者可能需要利用`java.time....

    可充电池充电时间计算公式

    本篇文章将详细介绍两种常见的可充电池类型——锂离子电池和镍氢电池的充电时间计算方法,并提供相应的公式。 1. 锂离子电池充电时间计算 锂离子电池的充电时间计算相对简单,基本公式为:(电池容量/充电器的输出...

    LoRa数据速率,功率,空中时间计算工具

    LoRa(Long Range)是一种基于扩频技术的远距离...总结来说,"LoRa数据速率,功率,空中时间计算工具"是LoRa网络设计和优化的有力辅助,它帮助我们理解和调整影响LoRa性能的关键因素,以实现更高效、可靠的物联网连接。

    强大的时间计算工具类

    各种时间计算模型,各种时间转换格式,获取各种格式的时间,一一尽有

    新一代Lora芯片SX126x系列传输时间计算

    新一代Lora芯片SX1261,sx1262,sx1268传输时间计算,方便计算传播延时。官网最新的资源工具包

    日出日落时间计算.html (js)

    日出日落时间计算.html (js) js脚本

    android 日出日落时间计算方法

    随经纬度变化的日出日落时间计算方法 需要输入经纬和时间

    根据经纬度 时间 计算太阳高度角和方位角

    根据经纬度和时间 计算太阳高度角和方位角

    智能电能表起动潜动时间计算

    智能电能表的起动时间、潜动时间计算小工具。

    论文研究-基于活动重叠的DSM项目时间计算及排序优化.pdf

    论文研究-基于活动重叠的DSM项目时间计算及排序优化.pdf, 研发活动之间常存在顺序重叠和反馈重叠,重叠并行性会加快项目的进度,但又存在返工风险.为此,采用设计结构矩阵...

    RC复位电路复位时间的计算

    具体到RC复位电路的时间计算,当电源VCC上电时,电容C开始充电。在充电初期,电容两端的电压UT会逐渐上升。假设电容初始电压U0为0V,要计算充电至一定电压值UT所需的时间T,可以使用以下公式进行计算: 对于低电平...

    NOR及装卸时间(LAYTIME)计算.pdf

    以下是关于NOR和装卸时间计算的关键知识点: 1. NOR的递交时间: - 通常情况下,船东的义务是在抵达第一装货港时递交通知书,以便通知装货人船舶已就绪。 - 在Laycan(约定的装卸窗口期)之前,船东可以递交NOR,...

    混响时间计算工具.xlsx

    用于计算室内混响时间,文件整合了计算理论依据,不同吸声结构的吸声系数表等内容,可方便设置吸声结构,调整混响时间。

    C# 时间计算通类

    包含几乎全部可以用到的时间计算方法 时间差 每月星期 每月第几个星期几等等

    Profibus循环时间计算

    Profibus循环时间计算,对控制的时间有帮助。

Global site tag (gtag.js) - Google Analytics