Як обчислити дату шість місяців від поточної дати за допомогою модуля Python datetime?


391

Я використовую модуль Python datetime. Я шукаю підрахувати дату 6 місяців від поточної дати. Невже хтось може мені трохи допомогти в цьому?

Причиною, через яку я хочу створити дату 6 місяців з поточної дати, є створення дати перегляду . Якщо користувач вводить дані в систему, у нього буде дата перегляду 6 місяців з дати введення даних.


2
Вам доведеться бути більш конкретними: коли минає півроку з 31 березня? А з 30 серпня?
kmkaplan

3
Так, редагування допомагає: це означає, що ви можете призначити від 6 місяців до 183 днів без поганого ефекту. Тож додавання 183 днів до сьогоднішнього дня зробить трюк.
kmkaplan

15
Наведені вище коментарі вражають мене як дурного. Концепція "додавання шести місяців" є цілком зрозумілою - візьміть компонент місяця і додайте 6до нього, підтримуючи прокрутку за рік (і повернення на місяць назад 1), якщо ми підемо минулого грудня. Це відбувається саме те, що relativedeltaробить, і є насправді тим, що робить кожна мова програмування з підтримкою такого роду понять.
Кірк Волл

5
@KirkWoll: Я впевнений, що це цілком зрозуміло. Але все одно відрізняється від того, хто говорить. Пітон: date(2015, 3, 31) + relativedelta(months = 6)дає datetime.date(2015, 9, 30). Perl: DateTime->new(year=>2000, month=>3, day=>31)->add(months=>6)дає 2000-10-01T00:00:00. Php: date_create('2000-03-31', new DateTimeZone('UTC'))->add(new DateInterval('P6M'))дає 2000-10-01. Виберіть свою отруту.
kmkaplan

2
... додавання 182 видається більш прагматичним для створення дати огляду : він зберігає день тижня неушкодженим.
Вовк

Відповіді:


1047

Я знайшов це рішення гарним. (Для цього використовується розширення python-dateutil )

from datetime import date
from dateutil.relativedelta import relativedelta

six_months = date.today() + relativedelta(months=+6)

Перевагою такого підходу є те, що він вирішує питання з 28, 30, 31 днями і т.д.

$ date(2010,12,31)+relativedelta(months=+1)
  datetime.date(2011, 1, 31)

$ date(2010,12,31)+relativedelta(months=+2)
  datetime.date(2011, 2, 28)

2
+6 - це показник того, що це може бути -6, те ж саме стосується і днів, і років :)
securecurve

5
@sliders_alpha Вам потрібно встановити пакет python-dateutil (pip install python-dateutil)
poiuytrez

18
Це правильне рішення. Якщо ОП попросила б 6 років замість 6 місяців, то затверджена відповідь була б сумною. Тож слід пам’ятати, що відповіді цінніші, чим вони узагальненіші.
Даніель Ф

3
Будь ласка, зауважте, що relativedeltaфункція також приймає monthяк аргумент, який в основному замінює / встановлює / виправляє місяць у пройденій даті, що сильно відрізняється від додавання більше місяців. Просто застереження для людей , цікаво , якщо ця функція порушена , тому що вони забули про додаткові сек в місяців .
shad0w_wa1k3r

1
Мені цікаво: хтось знає, чому це не включено за замовчуванням? Тимедельта здається упакованим datetimeза замовчуванням. Я насправді припускав, що можу пройти "місяці" в таймеделі.
dTanMan

51

Ну, це залежить від того, що ви маєте на увазі через 6 місяців від поточної дати.

  1. Використання природних місяців:

    (day, month, year) = (day, (month + 5) % 12 + 1, year + (month + 5)/12)
  2. Використовуючи визначення банкіра, 6 * 30:

    date += datetime.timedelta(6 * 30)

3
Чи не могли б ви також визначити піврічне визначення (183 дні) плюс 26-тижневе визначення? Це допомагає мати їх усіх в одному місці.
S.Lott

11
лише швидке зауваження: я думаю, що протягом місяця формула буде замість цього (місяць + 5)% 12 + 1 б / с за червень, ваша формула дає 0, тоді як очікуваний результат 12 ... незважаючи на цю невелику помилку, на мій погляд, ваша відповідь найкраще відповідає на питання
PierrOz

3
і те саме для року: це має бути рік + (місяць + 5) / 12
П'єрОз

7
Що робити, якщо дата становить 31 рік, а місяць через півроку не може мати 31 день (що стосується більшості місяців із 31 днів)?
akv

4
Тому що перше рішення (day, month, year) = (day, (month+6)%12, year+(month+6)/12)може бути баггі, оскільки воно генерує недійсні дати, такі як (31, 8, 2015)->(31, 2, 2016)
ой

37

З Python 3.x ви можете це зробити так:

from datetime import datetime, timedelta
from dateutil.relativedelta import *

date = datetime.now()
print(date)
# 2018-09-24 13:24:04.007620

date = date + relativedelta(months=+6)
print(date)
# 2019-03-24 13:24:04.007620

але вам потрібно буде встановити модуль python-dateutil :

pip install python-dateutil

Оголошено заpip install ...
Натан

Я б рекомендував from dateutil.relativedelta import relativedelta. Використання import *не є явним.
Сем Морган

19

Розрахунок на початок від місяця до місяця:

from datetime import timedelta
from dateutil.relativedelta import relativedelta

end_date = start_date + relativedelta(months=delta_period) + timedelta(days=-delta_period)

18
Це не відносне рішення, про яке було сказано вище в коментарях. Продовжуйте прокручувати рішення за допомогою 600+ оновлень.
Nostalg.io

15

Що ви маєте на увазі під "6 місяців"?

Чи 2009-02-13 + 6 місяців == 2009-08-13? Або це 2009-02-13 + 6 * 30 днів?

import mx.DateTime as dt

#6 Months
dt.now()+dt.RelativeDateTime(months=6)
#result is '2009-08-13 16:28:00.84'

#6*30 days
dt.now()+dt.RelativeDateTime(days=30*6)
#result is '2009-08-12 16:30:03.35'

Більше інформації про mx.DateTime


14

Отже, ось приклад того, dateutil.relativedeltaщо я вважав корисним для ітерації за минулий рік, пропускаючи щомісяця до цієї дати:

>>> import datetime
>>> from dateutil.relativedelta import relativedelta
>>> today = datetime.datetime.today()
>>> month_count = 0
>>> while month_count < 12:
...  day = today - relativedelta(months=month_count)
...  print day
...  month_count += 1
... 
2010-07-07 10:51:45.187968
2010-06-07 10:51:45.187968
2010-05-07 10:51:45.187968
2010-04-07 10:51:45.187968
2010-03-07 10:51:45.187968
2010-02-07 10:51:45.187968
2010-01-07 10:51:45.187968
2009-12-07 10:51:45.187968
2009-11-07 10:51:45.187968
2009-10-07 10:51:45.187968
2009-09-07 10:51:45.187968
2009-08-07 10:51:45.187968

Як і в інших відповідях, ви повинні з'ясувати, що ви насправді маєте на увазі під "6 місяців відтепер". Якщо ви маєте на увазі "сьогоднішній день місяця у місяці шість років у майбутньому", то це зробить так:

datetime.datetime.now() + relativedelta(months=6)

14

Це рішення працює правильно за грудень, що більшість відповідей на цій сторінці не відповідає. Потрібно спочатку перемістити місяці з бази 1 (тобто Jan = 1) на базу 0 (тобто Jan = 0), перш ніж використовувати модуль (%) або ціле ділення (//), інакше листопад (11) плюс 1 місяць дає 12 , що при знаходженні залишку (12% 12) дає 0.

(І не пропонуйте "(місяць% 12) + 1" або Жовтень + 1 = грудень!)

def AddMonths(d,x):
    newmonth = ((( d.month - 1) + x ) % 12 ) + 1
    newyear  = int(d.year + ((( d.month - 1) + x ) / 12 ))
    return datetime.date( newyear, newmonth, d.day)

Однак ... Це не враховує такої проблеми, як 31 січня + один місяць. Тож ми повертаємось до ОП - що ви розумієте, додаючи місяць? Одне рішення - відмовитися, поки ви не дійдете до дійсного дня, враховуючи, що більшість людей вважають останній день січня плюс один місяць, що дорівнює останньому дню лютого. Це також буде працювати на негативних числах місяців. Доказ:

>>> import datetime
>>> AddMonths(datetime.datetime(2010,8,25),1)
datetime.date(2010, 9, 25)
>>> AddMonths(datetime.datetime(2010,8,25),4)
datetime.date(2010, 12, 25)
>>> AddMonths(datetime.datetime(2010,8,25),5)
datetime.date(2011, 1, 25)
>>> AddMonths(datetime.datetime(2010,8,25),13)
datetime.date(2011, 9, 25)
>>> AddMonths(datetime.datetime(2010,8,25),24)
datetime.date(2012, 8, 25)
>>> AddMonths(datetime.datetime(2010,8,25),-1)
datetime.date(2010, 7, 25)
>>> AddMonths(datetime.datetime(2010,8,25),0)
datetime.date(2010, 8, 25)
>>> AddMonths(datetime.datetime(2010,8,25),-12)
datetime.date(2009, 8, 25)
>>> AddMonths(datetime.datetime(2010,8,25),-8)
datetime.date(2009, 12, 25)
>>> AddMonths(datetime.datetime(2010,8,25),-7)
datetime.date(2010, 1, 25)>>> 

3
Виправляє проблему "31 січня + один місяць": days_in_month = Calendar.monthrange (newyear, newmonth) [1]; newday = min (d.day, days_in_month); (купіть день вниз, якщо занадто великий, наприклад 31 лютого по 28 лютого)
Кертіс Яллоп

Це працювало для мене лише за допомогою перетворення нового року на цілий тип даних def AddMonths (d, x): newmonth = (((d.month - 1) + x)% 12) + 1 newyear = d.year + int (( (d.month - 1) + x) / 12) дата повернення timetime.date (newyear, newmonth, d.day)
Manmeet Singh

12

Я знаю, що це було протягом 6 місяців, проте відповідь відображається в google за "додавання місяців у python", якщо ви додаєте один місяць:

import calendar

date = datetime.date.today()    //Or your date

datetime.timedelta(days=calendar.monthrange(date.year,date.month)[1])

це порахує дні в поточному місяці та додасть їх до поточної дати, використовуючи 365/12, оголошення 1/12 року може спричинити проблеми на короткі / довгі місяці, якщо ваш повторення над датою.



10

Просто використовуйте метод timetuple, щоб витягти місяці, додати свої місяці та створити новий об’єкт дати. Якщо для цього вже існує метод, я цього не знаю.

import datetime

def in_the_future(months=1):
    year, month, day = datetime.date.today().timetuple()[:3]
    new_month = month + months
    return datetime.date(year + (new_month / 12), (new_month % 12) or 12, day)

API трохи незграбний, але працює як приклад. Очевидно також не працюватимуть у таких випадках, як 2008-01-31 + 1 місяць. :)


3
Помилка у вашому коді: new_month % 12має бути (new_month % 12) or 12. Інакше якщо ви спробуєте це в листопаді, ви отримаєте помилку. :)
Jordan Reiter

Це насправді набагато чистіше, ніж прийняте рішення. Для цього не потрібен новий імпорт, а лише основна математика
Simon PA

повернути datetime.date (рік + (new_month / / 12), (new_month% 12) або 12, день)
paytam

9

Пакет Dateutil має таку функціональність. Але майте на увазі, що це буде наївно , як уже вказували інші.


dateutil є приголомшливим. Його можна встановити і з easy_install.
Радянський

Відмінно. Дякуємо, що запропонували це. Це здається богом посланим.
аяз

9

Використання стандартних бібліотек Python, тобто без dateutilінших, та вирішення проблеми "31 лютого":

import datetime
import calendar

def add_months(date, months):
    months_count = date.month + months

    # Calculate the year
    year = date.year + int(months_count / 12)

    # Calculate the month
    month = (months_count % 12)
    if month == 0:
        month = 12

    # Calculate the day
    day = date.day
    last_day_of_month = calendar.monthrange(year, month)[1]
    if day > last_day_of_month:
        day = last_day_of_month

    new_date = datetime.date(year, month, day)
    return new_date

Тестування:

>>>date = datetime.date(2018, 11, 30)

>>>print(date, add_months(date, 3))
(datetime.date(2018, 11, 30), datetime.date(2019, 2, 28))

>>>print(date, add_months(date, 14))
(datetime.date(2018, 12, 31), datetime.date(2020, 2, 29))

У цьому помилка: якщо цільовий місяць грудень, він поверне дату на рік пізніше, ніж потрібно. Приклад: add_months(datetime.date(2018, 11, 30), 1)прибутки datetime.date(2019, 12, 30)(рік повинен бути 2018, а не 2019). Отож, краще використовувати для цього спеціальну, добре перевірену бібліотеку! Якщо вам справді потрібно використовувати лише стандартні модулі бібліотеки, дивіться мою відповідь на подібне запитання .
talentinat

5

У мене є кращий спосіб вирішити проблему "31 лютого":

def add_months(start_date, months):
    import calendar

    year = start_date.year + (months / 12)
    month = start_date.month + (months % 12)
    day = start_date.day

    if month > 12:
        month = month % 12
        year = year + 1

    days_next = calendar.monthrange(year, month)[1]
    if day > days_next:
        day = days_next

    return start_date.replace(year, month, day)

Я думаю, що це також працює з від’ємними числами (відняти місяці), але я не дуже перевіряв це.


1
Ця відповідь має гідність вирішити проблему, використовуючи лише вбудовані бібліотеки Python. Перевірте stackoverflow.com/a/4131114/302264 на еквівалентну, але трохи більш коротку відповідь.
Едуардо Добай

3

Клас QDate PyQt4 має додаткову функцію.

>>>from PyQt4.QtCore import QDate  
>>>dt = QDate(2009,12,31)  
>>>required = dt.addMonths(6) 

>>>required
PyQt4.QtCore.QDate(2010, 6, 30)

>>>required.toPyDate()
datetime.date(2010, 6, 30)

3

Як щодо цього? Не використовується інша бібліотека ( dateutil) або timedelta? спираючись на відповідь Вартека , я це зробив, і я вважаю, що це працює:

import datetime

today = datetime.date.today()
six_months_from_today = datetime.date(today.year + (today.month + 6)/12, (today.month + 6) % 12, today.day)

Я спробував використовувати timedelta, але тому, що це підрахунок днів, 365/2або 6*356/12не завжди перекладається на 6 місяців, а швидше 182 дні. напр

day = datetime.date(2015, 3, 10)
print day
>>> 2015-03-10

print (day + datetime.timedelta(6*365/12))
>>> 2015-09-08

Я вважаю, що ми зазвичай припускаємо, що 6 місяця з певного дня приземлиться в той же день місяця, але через 6 місяців (тобто 2015-03-10-> 2015-09-10, ні 2015-09-08)

Я сподіваюся, що Ви вважаєте це корисним.


1
day + datetime.timedelta(6*365/12)працювати не завжди, оскільки деякі роки мають 365 днів, а інші - 366 днів.
3kstc

3

Це не відповідає конкретному запитанню (використовуючи datetimeлише), але, враховуючи, що інші пропонували використовувати різні модулі, тут є рішення, що використовує pandas.

import datetime as dt
import pandas as pd

date = dt.date.today() - \
       pd.offsets.DateOffset(months=6)

print(date)

2019-05-04 00:00:00

Що працює як очікується у високосні роки

date = dt.datetime(2019,8,29) - \
       pd.offsets.DateOffset(months=6)
print(date)

2019-02-28 00:00:00

2

Змінено AddMonths () для використання в Zope та обробки недійсних номерів днів:

def AddMonths(d,x):
    days_of_month = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
    newmonth = ((( d.month() - 1) + x ) % 12 ) + 1
    newyear  = d.year() + ((( d.month() - 1) + x ) // 12 ) 
    if d.day() > days_of_month[newmonth-1]:
      newday = days_of_month[newmonth-1]
    else:
      newday = d.day() 
    return DateTime( newyear, newmonth, newday)

Здається, це не враховує високосні роки (29 днів у фебрі).
обробляти

2
import time

def add_month(start_time, months):  

        ret = time.strptime(start_time, '%Y-%m-%d')
        t = list(ret)

        t[1] += months

        if t[1] > 12:
            t[0] += 1 + int(months / 12)

            t[1] %= 12

        return int(time.mktime(tuple(t)))

1
import datetime


'''
Created on 2011-03-09

@author: tonydiep
'''

def add_business_months(start_date, months_to_add):
    """
    Add months in the way business people think of months. 
    Jan 31, 2011 + 1 month = Feb 28, 2011 to business people
    Method: Add the number of months, roll back the date until it becomes a valid date
    """
    # determine year
    years_change = months_to_add / 12

    # determine if there is carryover from adding months
    if (start_date.month + (months_to_add % 12) > 12 ):
        years_change = years_change + 1

    new_year = start_date.year + years_change

    # determine month
    work = months_to_add % 12
    if 0 == work:
        new_month = start_date.month
    else:
        new_month = (start_date.month + (work % 12)) % 12

    if 0 == new_month:
        new_month = 12 

    # determine day of the month
    new_day = start_date.day
    if(new_day in [31, 30, 29, 28]):
        #user means end of the month
        new_day = 31


    new_date = None
    while (None == new_date and 27 < new_day):
        try:
            new_date = start_date.replace(year=new_year, month=new_month, day=new_day)
        except:
            new_day = new_day - 1   #wind down until we get to a valid date

    return new_date


if __name__ == '__main__':
    #tests
    dates = [datetime.date(2011, 1, 31),
             datetime.date(2011, 2, 28),
             datetime.date(2011, 3, 28),
             datetime.date(2011, 4, 28),
             datetime.date(2011, 5, 28),
             datetime.date(2011, 6, 28),
             datetime.date(2011, 7, 28),
             datetime.date(2011, 8, 28),
             datetime.date(2011, 9, 28),
             datetime.date(2011, 10, 28),
             datetime.date(2011, 11, 28),
             datetime.date(2011, 12, 28),
             ]
    months = range(1, 24)
    for start_date in dates:
        for m in months:
            end_date = add_business_months(start_date, m)
            print("%s\t%s\t%s" %(start_date, end_date, m))

1

Модифікована відповідь Йоганнеса Вей у справі 1new_month = 121. Це прекрасно працює для мене. Місяці можуть бути позитивними чи негативними.

def addMonth(d,months=1):
    year, month, day = d.timetuple()[:3]
    new_month = month + months
    return datetime.date(year + ((new_month-1) / 12), (new_month-1) % 12 +1, day)

2
НЕ "працює ідеально", коли день у дату початку перевищує кількість днів у цільовому місяці. Приклад: 2001-01-31 плюс один місяць намагається створити дату 2001-02-31.
Джон Махін

1

Ще одне рішення - сподівайтеся, що комусь сподобається:

def add_months(d, months):
    return d.replace(year=d.year+months//12).replace(month=(d.month+months)%12)

Це рішення не працює 29,30,31 днів для всіх випадків, тому потрібне більш надійне рішення (що вже не так приємно :)):

def add_months(d, months):
    for i in range(4):
        day = d.day - i
        try:
            return d.replace(day=day).replace(year=d.year+int(months)//12).replace(month=(d.month+int(months))%12)
        except:
            pass
    raise Exception("should not happen")

1

З цієї відповіді див. Час розбору . Приклад коду випливає. Більш детально: тестовий пристрій з багатьма прикладами перетворення на природній мові -> YYYY-MM-DD , та явними проблемами / помилками перетворення парсетального часу .

#!/usr/bin/env python
# -*- coding: utf-8 -*-
import time, calendar
from datetime import date

# from https://github.com/bear/parsedatetime
import parsedatetime as pdt

def print_todays_date():
    todays_day_of_week = calendar.day_name[date.today().weekday()]
    print "today's date = " + todays_day_of_week + ', ' + \
                              time.strftime('%Y-%m-%d')

def convert_date(natural_language_date):
    cal = pdt.Calendar()
    (struct_time_date, success) = cal.parse(natural_language_date)
    if success:
        formal_date = time.strftime('%Y-%m-%d', struct_time_date)
    else:
        formal_date = '(conversion failed)'
    print '{0:12s} -> {1:10s}'.format(natural_language_date, formal_date)

print_todays_date()
convert_date('6 months')

Вищевказаний код генерує наступне з машини MacOSX:

$ ./parsedatetime_simple.py 
today's date = Wednesday, 2015-05-13
6 months     -> 2015-11-13
$ 

1

Ось приклад, який дозволяє користувачеві вирішити, як повернути дату, коли день перевищує кількість днів у місяці.

def add_months(date, months, endOfMonthBehaviour='RoundUp'):
    assert endOfMonthBehaviour in ['RoundDown', 'RoundIn', 'RoundOut', 'RoundUp'], \
        'Unknown end of month behaviour'
    year = date.year + (date.month + months - 1) / 12
    month = (date.month + months - 1) % 12 + 1
    day = date.day
    last = monthrange(year, month)[1]
    if day > last:
        if endOfMonthBehaviour == 'RoundDown' or \
            endOfMonthBehaviour == 'RoundOut' and months < 0 or \
            endOfMonthBehaviour == 'RoundIn' and months > 0:
            day = last
        elif endOfMonthBehaviour == 'RoundUp' or \
            endOfMonthBehaviour == 'RoundOut' and months > 0 or \
            endOfMonthBehaviour == 'RoundIn' and months < 0:
            # we don't need to worry about incrementing the year
            # because there will never be a day in December > 31
            month += 1
            day = 1
    return datetime.date(year, month, day)


>>> from calendar import monthrange
>>> import datetime
>>> add_months(datetime.datetime(2016, 1, 31), 1)
datetime.date(2016, 3, 1)
>>> add_months(datetime.datetime(2016, 1, 31), -2)
datetime.date(2015, 12, 1)
>>> add_months(datetime.datetime(2016, 1, 31), -2, 'RoundDown')
datetime.date(2015, 11, 30)

1

зважаючи на те, що ваша змінна час часу називається датою:

date=datetime.datetime(year=date.year+int((date.month+6)/12),
                       month=(date.month+6)%13 + (1 if (date.month + 
                       months>12) else 0), day=date.day)

1

Загальна функція для отримання наступної дати після / до х місяців.

від дати імпорту з датою

def after_month (заданий_даний, місяць):
    yyyy = int (((дано_дачу.року * 12 + задано_місяць.місяць) + місяць) / 12)
    mm = int (((дата_дачі.року * 12 + заданий_місяць.місяць) + місяць)% 12)

    якщо мм == 0:
        yyyy - = 1
        мм = 12
    повернути date_date.replace (рік = рік, рік = мм)


якщо __name__ == "__main__":
    сьогодні = date.today ()
    друк (сьогодні)

    для мм у [-12, -1, 0, 1, 2, 12, 20]:
        next_date = після_місяця (сьогодні, мм)
        друк (next_date)

Це, очевидно, найкраща відповідь. Простий та ефективний, без питань округлення.
jprobichaud


0

Використовуйте модуль дати пітона, щоб додати тиммеделю з шести місяців до datetime.today ().

http://docs.python.org/library/datetime.html

Ви, звичайно , доведеться вирішувати питання , піднятий Johannes Weiß-- що робити ви маєте в виду на 6 місяців?


1
timedelta не підтримує місяці і тому уникає можливих відповідей на питання "скільки днів за 6 місяців?" Код Eef встановить дату перегляду, тому я б припустив, що можна розглянути можливість встановлення тиммеделі за допомогою днів (6 * 30) Якщо період відображає доступ клієнтів до товару / послуги, тоді може вимагатись / бажано визначення бізнесу.
Карл

0

Це те, що я придумав. Він рухає правильну кількість місяців і років, але ігнорує дні (що було мені потрібно в моїй ситуації).

import datetime

month_dt = 4
today = datetime.date.today()
y,m = today.year, today.month
m += month_dt-1
year_dt = m//12
new_month = m%12
new_date = datetime.date(y+year_dt, new_month+1, 1)

0

Я використовую цю функцію для зміни року та місяця, але зберігаю день:

def replace_month_year(date1, year2, month2):
    try:
        date2 = date1.replace(month = month2, year = year2)
    except:
        date2 = datetime.date(year2, month2 + 1, 1) - datetime.timedelta(days=1)
    return date2

Ви повинні написати:

new_year = my_date.year + (my_date.month + 6) / 12
new_month = (my_date.month + 6) % 12
new_date = replace_month_year(my_date, new_year, new_month)

0

Я думаю, було б безпечніше робити щось подібне, а не додавати дні вручну:

import datetime
today = datetime.date.today()

def addMonths(dt, months = 0):
    new_month = months + dt.month
    year_inc = 0
    if new_month>12:
        year_inc +=1
        new_month -=12
    return dt.replace(month = new_month, year = dt.year+year_inc)

newdate = addMonths(today, 6)
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.