`

时间处理类

 
阅读更多

 /// <summary>
    /// 时间计算类
    /// </summary>
    public class CalculateTime
    {
        /// <summary>
        /// 计算当天是本周星期几
        /// </summary>
        /// <param name="now">当前时间</param>
        /// <returns></returns>
        public static int  CaculateWeekDay(DateTime now)
        {
            int y = now.Year;
            int m = now.Month;
            int d = now.Day;
            if (m == 1) { m = 13; y--; }
            if (m == 2) { m = 14; y--; }
            int week = (d + 2 * m + 3 * (m + 1) / 5 + y + y / 4 - y / 100 + y / 400) % 7 + 1;          
            return week;
        }
        /// <summary>
        /// 返回该周星期日的日期。
        /// </summary>
        /// <param name="now">当前时间</param>
        /// <returns></returns>
        public static DateTime GetDateOfSunday(DateTime now)
        {
            int i = CaculateWeekDay(now);
            if (i == 7)
            {
                i = 0;
            }
            return now.AddDays(-i);
        }
        /// <summary>
        /// 返回上周星期日的日期。
        /// </summary>
        /// <param name="now">当前时间</param>
        /// <returns></returns>
        public static DateTime GetDateOfLastSunday(DateTime now)
        {
            int i = CaculateWeekDay(now);
            if (i == 7)
            {
                i = 0;
            }
            return now.AddDays(-i).AddDays(-7);
        }
       /// <summary>
        /// 返回该周星期六的日期。
       /// </summary>
       /// <param name="now">当前时间</param>
       /// <returns></returns>
        public static DateTime GetDateOfSaturday(DateTime now)
        {
            int i = CaculateWeekDay(now);
            if (i == 7)
            {
                i = 0;
            }
            return now.AddDays(-i).AddDays(6);
        }
        /// <summary>
        /// 返回该周星期一的日期。
        /// </summary>
        /// <param name="now">当前时间</param>
        /// <returns></returns>
        public static DateTime GetDateOfMonday(DateTime now)
        {
            int i = CaculateWeekDay(now);
            if (i == 7)
            {
                i = 0;
            }
            return now.AddDays(-i).AddDays(1);
        }
        /// <summary>
        /// 计算当天所在的周是当年的第几周
        /// </summary>
        /// <param name="now">当前时间</param>
        /// <returns></returns>
        public static int GetWeekNumOfYear(DateTime now)
        {
            int days = now.DayOfYear + (7 - (int)now.DayOfWeek);
            return days / 7 + (days % 7 == 0 ? 0 : 1);
        }

 

    }

分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    java时间处理类

    提供友好的时间处理接口,方便处理java时间相关问题

    日期时间处理类需要处理的时间和日期的转换

    在Java中,日期时间处理类的情况有所不同。Java 8之前,主要使用`java.util.Date`和`java.text.SimpleDateFormat`进行日期时间的处理,但这两个类的设计被认为不够理想。自Java 8起,引入了`java.time`包,其中包括`...

    php封装的时间处理类

    通过这样的时间处理类,开发者可以在项目中轻松地实现各种时间相关的功能,而无需重复编写相同的代码。这不仅可以提高开发效率,也有助于保持代码的整洁和一致性。在实际使用时,只需要实例化这个类,并调用相应的...

    Java的日期时间处理类讲解代码( Date 、Calendar、SimpleDateFormat、LocalDateTime)

    本源码资源提供了Java中的日期时间处理类相关内容,包括日期、时间和时区的操作方法和示例。它涵盖了Java编程中常用的日期时间处理需求以及如何使用日期时间类来解决这些问题。 适用人群 本源码资源适用于具备一定...

    java时间处理类,

    提供各种时间操作,格式化时间格式,时间格式的转换.

    java 时间处理类

    对年月日进行处理,计算延迟一段时间后的日期问题。 在订购类业务中,频繁涉及时间计算问题。 两个构造函数 public Kdate(int days) public Kdate(int year, int month, int day) 三个公共接口: public Kdate ...

    Java日期时间处理类 date4j

    Java日期时间处理在编程中是一项常见任务,但Java标准库中的`java.util.Date`和`Calendar`类在使用上往往被认为复杂且不直观。为了解决这个问题,`date4j`库应运而生,它提供了更为简洁和现代的方式来处理日期和时间...

    PHP时间处理类操作示例

    在这篇文章中,我们将重点介绍PHP中的时间处理类,如DateTime、DateTimeZone、DateInterval和DatePeriod,这些类可以简化我们在PHP项目中进行日期和时间操作的过程。 首先,我们来详细解释一下这些类的用途: 1. ...

    时间工具类 DateUtils

    首先,`DateUtils` 类通常是一个自定义的时间处理类,它扩展了Java内置的`java.util.Calendar`或`java.time`包的功能。`DateUtils` 提供了一系列静态方法,用于格式化、解析日期,进行日期加减操作,比较日期等。...

    时间处理工具类

    快速处理时间格式,拥有丰富的时间处理格式

    有关时间的处理封装方法

    我们可以创建一个专门的时间处理类,比如`TimeHandler`,在这个类中定义各种方法,如获取当前时间、格式化时间、计算时间差等。例如: ```python class TimeHandler: @staticmethod def get_current_timestamp():...

    java系统获取时间小类

    `java.util.Date`是Java中最早的日期时间处理类之一。它代表特定的时间点,精确到毫秒。在给定的代码片段中,`Date`对象被创建并用于获取当前时间。然而,`Date`类的设计并不理想,它缺乏线程安全性和灵活性,因此在...

    Java中日期时间处理.docx

    接下来,Calendar类是比Date更加强大的日期时间处理类,它是一个抽象类,通常通过Calendar.getInstance()获取其子类的实例。Calendar类提供了更丰富的功能,包括设置和获取日期时间的各种组件,如YEAR、MONTH、DATE...

    java笔试面试--日期时间处理要点.pdf

    `java.util.Date`类是Java中最基础的日期时间处理类,它能够精确到毫秒级别,表示的是从1970年1月1日00:00:00.000 GMT(格林威治标准时间)到当前时间的毫秒差值。 格林威治标准时间(GMT)是基于地球自转计算的...

    java时间工具类,基本上全面的包括常用的关于时间的处理

    `java.time`包包含如`LocalDate`, `LocalTime`, `LocalDateTime`等类,提供了更强大且易用的时间处理功能。然而,由于许多老项目仍然使用`java.util.Date`,DateUtil可能仍然基于这个旧的API,或者它也可能已经进行...

    java各种时间应用的一个实例

    最后,`java.util.Calendar`和`java.util.Date`是Java早期版本中的日期和时间处理类,虽然现在推荐使用`java.time`包,但它们依然广泛存在。理解这两个类的用法对于处理遗留代码仍然是必要的。 总结,Java中的时间...

    时间各种处理类

    时间的处理各种方式 java8 技术 对时间处理的各种方式

    java获取时间大全

    Java获取时间是一个重要的编程任务,尤其在开发过程中处理日期和时间相关的逻辑时。Java提供了多种方式来操作和...在实际开发中,根据项目需求选择合适的时间处理类和方法,可以更好地处理各种日期和时间相关的问题。

    日期和时间的扩展类2.2版的更新程序(22KB)

    总结来说,这个"日期和时间的扩展类2.2版的更新程序"是一个用于增强日期和时间处理的C++库,它可能包括用户界面控件,提供源码供定制,与系统时间功能有深度集成,并且包含了一些关键的日期时间处理类。更新可能涉及...

Global site tag (gtag.js) - Google Analytics