Python 程序:查找两个给定日期之间的天数

在本教程中,我们将讨论如何编写一个 Python 程序来查找两个给定数字之间的天数。

假设我们给出了两个日期,我们的预期输出将是:

示例:


Input: Date_1 = 12/10/2021, Date_2 = 31/08/2022
Output: Number of Days between the given Dates are: 323 days
Input: Date_1 = 10/09/2023, Date_2 = 04/02/2025
Output: Number of Days between the given Dates are: 323 days: 513 days

方法 1:天真的方法

在这种方法中,天真的解决方案将从 date_1 开始,它将继续计算天数,直到到达 date_2。该解决方案将需要超过 O(1) 次。这是一个计算 date_1 之前的总天数的简单解决方案,这意味着它将计算从 00/00/0000 到 date_1 的总天数,然后它将计算 date_2 之前的总天数。最后,它将以两个给定日期之间的总天数的形式返回两个计数之间的差异。

示例:


# First, we will create a class for dates
class date_n:
    def __init__(self, day, month, year):
        self.day = day
        self.month = month
        self.year = year

# For storng number of days in all months from
# January to December.
month_Days = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]

# This function will count the number of leap years from 00/00/0000 to the #given date

def count_Leap_Years(day):

    years = day.year

    # Now, it will check if the current year should be considered for the count          # of leap years or not.
    if (day.month <= 2):
        years -= 1

    # The condition for an year is a leap year: if te year is a multiple of 4, and a            # multiple of 400 but not a multiple of 100.
    return int(years / 4) - int(years / 100) + int(years / 400)

# This function will return number of days between two given dates
def get_difference(date_1, date_2):

    # Now, it will count total number of days before first date "date_1"

    # Then, it will initialize the count by using years and day
    n_1 = date_1.year * 365 + date_1.day

    # then, it will add days for months in the given date
    for K in range(0, date_1.month - 1):
        n_1 += month_Days[K]

    # As every leap year is of 366 days, we will add 
    # a day for every leap year
    n_1 += count_Leap_Years(date_1)

    # SIMILARLY, it will count total number of days before second date "date_2"

    n_2 = date_2.year * 365 + date_2.day
    for K in range(0, date_2.month - 1):
        n_2 += month_Days[K]
    n_2 += count_Leap_Years(date_2)

    # Then, it will return the difference between two counts
    return (n_2 - n_1)

# Driver program
date_1 = date_n(12, 10, 2021)
date_2 = date_n(30, 8, 2022)

print ("Number of Days between the given Dates are: ", get_difference(date_1, date_2), "days")

输出:

Number of Days between the given Dates are:  322 days

方法 2:使用 Python 日期时间模块

在这个方法中,我们将看到如何使用 Python 的内置函数“datetime”,它可以帮助用户解决各种日期时间相关的问题。为了找出两个日期之间的差异,我们可以以日期类型格式输入两个日期并减去它们,这将导致输出两个给定日期之间的天数。

示例:


from datetime import date as date_n

def number_of_days(date_1, date_2):
    return (date_2 - date_1).days

# Driver program
date_1 = date_n(2023, 9, 10)
date_2 = date_n(2025, 2, 4)
print ("Number of Days between the given Dates are: ", number_of_days(date_1, date_2), "days")

输出:

Number of Days between the given Dates are:  513 days

结论

在本教程中,我们讨论了如何编写 python 代码来查找两个给定日期之间的总天数的两种不同方法。


原创文章,作者:OSARI,如若转载,请注明出处:https://www.506064.com/n/128574.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
OSARIOSARI
上一篇 2024-10-03 23:25
下一篇 2024-10-03 23:25

相关推荐

  • Python计算阳历日期对应周几

    本文介绍如何通过Python计算任意阳历日期对应周几。 一、获取日期 获取日期可以通过Python内置的模块datetime实现,示例代码如下: from datetime imp…

    编程 2025-04-29
  • Python程序需要编译才能执行

    Python 被广泛应用于数据分析、人工智能、科学计算等领域,它的灵活性和简单易学的性质使得越来越多的人喜欢使用 Python 进行编程。然而,在 Python 中程序执行的方式不…

    编程 2025-04-29
  • python强行终止程序快捷键

    本文将从多个方面对python强行终止程序快捷键进行详细阐述,并提供相应代码示例。 一、Ctrl+C快捷键 Ctrl+C快捷键是在终端中经常用来强行终止运行的程序。当你在终端中运行…

    编程 2025-04-29
  • 利用Python实现两个链表合并为一个有序链表

    对于开发工程师来说,实现两个链表合并为一个有序链表是必须掌握的技能之一。Python语言在链表处理上非常便利,本文将从多个方面详细阐述如何利用Python实现两个链表合并为一个有序…

    编程 2025-04-29
  • Python程序文件的拓展

    Python是一门功能丰富、易于学习、可读性高的编程语言。Python程序文件通常以.py为文件拓展名,被广泛应用于各种领域,包括Web开发、机器学习、科学计算等。为了更好地发挥P…

    编程 2025-04-29
  • Python购物车程序

    Python购物车程序是一款基于Python编程语言开发的程序,可以实现购物车的相关功能,包括商品的添加、购买、删除、统计等。 一、添加商品 添加商品是购物车程序的基础功能之一,用…

    编程 2025-04-29
  • 爬虫是一种程序

    爬虫是一种程序,用于自动获取互联网上的信息。本文将从如下多个方面对爬虫的意义、运行方式、应用场景和技术要点等进行详细的阐述。 一、爬虫的意义 1、获取信息:爬虫可以自动获取互联网上…

    编程 2025-04-29
  • Vb运行程序的三种方法

    VB是一种非常实用的编程工具,它可以被用于开发各种不同的应用程序,从简单的计算器到更复杂的商业软件。在VB中,有许多不同的方法可以运行程序,包括编译器、发布程序以及命令行。在本文中…

    编程 2025-04-29
  • Python一元二次方程求解程序

    本文将详细阐述Python一元二次方程求解程序的相关知识,为读者提供全面的程序设计思路和操作方法。 一、方程求解 首先,我们需要了解一元二次方程的求解方法。一元二次方程可以写作: …

    编程 2025-04-29
  • 如何使用GPU加速运行Python程序——以CSDN为中心

    GPU的强大性能是众所周知的。而随着深度学习和机器学习的发展,越来越多的Python开发者将GPU应用于深度学习模型的训练过程中,提高了模型训练效率。在本文中,我们将介绍如何使用G…

    编程 2025-04-29

发表回复

登录后才能评论