Ejemplo n.º 1
0
def get_date_range(date: datetime = None, period: int = 6, unit: int = 1):
    """
    按指定日期、周期数、周期单位计算出各日期区间
    :param date: 指定日期
    :param period: 周期数
    :param unit: 周期单位,支持 月=1,季=2,年=3
    :return:日期区间,如: 传参是 date=<datetime: 2020-07-01>, period=2, unit=1,
      return: [(<datetime: 2020-07-01>, <datetime: 2020-07-31>, '2020-07'), (<datetime: 2020-06-01>, <datetime: 2020-06-30>, '2020-06')]
    """
    periods = list()
    year = date is None and datetime.datetime.now().year or date.year
    month = date is None and datetime.datetime.now().month or date.month
    for n in range(int(period)):
        if unit == 1:
            _, day_num = calendar.monthrange(year, month)
            periods.append((datetime.datetime(year, month, 1),
                            datetime.datetime(year, month,
                                              day_num), f'{year}-{month}'))
            year, month = calendar.prevmonth(year=year, month=month)
        elif unit == 2:
            first_day, last_day, date_str = get_quarter(
                date=datetime.date(year, month, 1))
            periods.append((first_day, last_day, date_str))
            year, month = calendar.prevmonth(year=first_day.year,
                                             month=first_day.month)
        elif unit == 3:
            periods.append((datetime.datetime(year, 1, 1),
                            datetime.datetime(year, 12, 31), f'{year}年'))
            year -= 1
    return periods[::-1]
Ejemplo n.º 2
0
    def get_page(self):
        """
        Get HTML-content from web-page and pass it further for downloading.
        """
        main_url = 'https://www.smashingmagazine.com/'
        prev_year, prev_month = calendar.prevmonth(self.year, MONTHS[self.month])
        url = f'{main_url}{prev_year}/{str(prev_month).zfill(2)}/desktop-wallpaper-calendars-{self.month}-{self.year}/'
        page = requests.get(url)

        if page.status_code == 200:
            print(page.status_code)
            self.download_content(page.content)
        else:
            print('No content found. Try another month and/or year.')
Ejemplo n.º 3
0
    def get_past_range(self, date_range):
        if date_range:
            if date_range == "today":
                date = datetime.now().date() - timedelta(days=1)
                start_date = datetime.combine(date, time.min)
                end_date = datetime.combine(date, time.max)
                return start_date, end_date, ""

            elif date_range == "yesterday":
                date = datetime.now().date() - timedelta(days=2)
                start_date = datetime.combine(date, time.min)
                end_date = datetime.combine(date, time.max)
                return start_date, end_date, ""

            elif date_range == "7days":
                date = datetime.now().date()
                start_date = date - timedelta(days=13)
                end_date = date - timedelta(days=6)
                start_date = datetime.combine(start_date, time.min)
                end_date = datetime.combine(end_date, time.max)
                return start_date, end_date, ""

            elif date_range == "30days":
                date = datetime.now().date()
                start_date = date - timedelta(days=60)
                end_date = date - timedelta(days=30)
                start_date = datetime.combine(start_date, time.min)
                end_date = datetime.combine(end_date, time.max)
                return start_date, end_date, ""

            elif date_range == "last_month":
                date = datetime.now().date()
                date = date - timedelta(days=60)
                y, m = calendar.prevmonth(date.year, date.month)
                start_date = datetime(y, m, 1)
                end_date = datetime(y, m, calendar.monthlen(y, m))
                end_date = datetime.combine(end_date, time.max)
                return start_date, end_date, ""

            else:
                try:
                    start_date, end_date = self.parse_datetime(date_range)
                    return start_date, end_date, ""
                except Exception as e:
                    return "", "", create_error_response(
                        {"Msg": "Invalid date range"})
        else:
            start_date, end_date, error = self.get_default_date_range()
            return start_date, end_date, error
Ejemplo n.º 4
0
    def swipe_month(self, previous=False):
        """
        Implements the swipe mechanism

        :param previous: if True set month to previous, otherwise to the next
        :return: None
        """
        day = datetime(month=self.current_month.get(),
                       year=self.current_year.get(),
                       day=1)
        month = calendar.prevmonth(month=day.month, year=day.year) \
            if previous \
            else calendar.nextmonth(month=day.month, year=day.year)

        self.current_year.set(month[0])
        self.current_month.set(month[1])

        self.clear_calendar()
        self.render_month(month=month[1], year=month[0])
Ejemplo n.º 5
0
    def set_dates(self):
        start = self.driver.find_element_by_xpath(
            '//*[@id="ctl00_ctl00_ctl00_ctl00_CphFormBody_cphFormBody_cphRight_cphReport_DatePickerStart_txtTextBox"]'
        )
        date1 = pd.to_datetime(start.get_attribute('defaultValue'))
        d2y, d2m = calendar.prevmonth(date1.year, date1.month)
        date2 = datetime.date(d2y, d2m, 1)
        startdate = str(date2.month) + '/' + str(date2.day) + '/' + str(
            date2.year)
        start.clear()
        start.send_keys(startdate)

        end = self.driver.find_element_by_xpath(
            '//*[@id="ctl00_ctl00_ctl00_ctl00_CphFormBody_cphFormBody_cphRight_cphReport_DatePickerEnd_txtTextBox"]'
        )
        enddate = str(date2.month) + '/' + str(
            calendar.monthrange(date2.year, date2.month)[1]) + '/' + str(
                date2.year)
        end.clear()
        end.send_keys(enddate)
        return date2
Ejemplo n.º 6
0
def testDate():
    # 获取年、月
    this_year = datetime.now().year
    this_month = datetime.now().month

    date_list = [[
        this_year, this_month,
        calendar.monthlen(this_year, this_month)
    ]]
    for i in range(5):
        year_month_days = list(calendar.prevmonth(this_year, this_month))
        this_month = this_month - 1
        if this_month <= 0:
            this_month = 12
            this_year = this_year - 1
        year_month_days.append(calendar.monthlen(this_year, this_month))
        date_list.append(year_month_days)

    for date_tuple in date_list:
        if date_tuple[1] < 10:
            date_tuple[1] = "0" + str(date_tuple[1])

    print(date_list)
Ejemplo n.º 7
0
# calendar.prmonth(year,month,w=2,l=1)

import calendar

print(calendar.prevmonth(2019, 6))  # (2019, 5)
Ejemplo n.º 8
0
    2
"""

print("##################### 4 #####################")
print("monthlen:", calendar.monthlen(2018, 10))
print("monthlen:", calendar.monthlen(2018, 11))
print("monthlen:", calendar.monthlen(2018, 12))
"""
output:
    monthlen: 31
    monthlen: 30
    monthlen: 31
"""

print("##################### 5 #####################")
print("prevmonth:", calendar.prevmonth(2018, 11))
print("nextmonth:", calendar.nextmonth(2018, 11))
"""
output:
    prevmonth: (2018, 10)
    nextmonth: (2018, 12)
"""

print("##################### 6 #####################")
print("monthrange:", calendar.monthrange(2018, 10))
print("monthrange:", calendar.monthrange(2018, 11))
print("monthrange:", calendar.monthrange(2018, 12))
"""
output:
    monthrange: (0, 31)
    monthrange: (3, 30)
Ejemplo n.º 9
0
we will have import calender library
this library .or module includes several function we take a look  at few of them

'''
#import calender module
import calendar

date = input("enter the date(dd/mm/year): ")

day, month, year = date.split("/")

day = int(day)
month = int(month)
year = int(year)

#print("calender of month ", month, " of year ", year)
print(calendar.month(year, month))

print("month length: ", calendar.monthlen(year, month))

print("next month: ", calendar.nextmonth(year, month))

print("previous month: ", calendar.prevmonth(year, month))

print("week day(week start from monday):", calendar.weekday(year, month, day))
'''
let's have a look at few more basic functions

thank you for watching
'''
Ejemplo n.º 10
0
 def previous_month(self):
     '''Move back one month'''
     self.year, self.month = calendar.prevmonth(self.year, self.month)
     self.day = 1
     self.populate_func()