Calculate 6 business days I wrote a little class that will calculate 6 business days from today. The reason it's in a class is because it will be used as a part of a bigger program.

I would like a way to refactor this class and make it a little more object oriented along with a little prettier.

from datetime import datetime, timedelta


class BusinessDay(object):
    """
    Calculate a business day of 6 days skipping Saturday and Sunday
    """
    return_date = []  # Array to store the calculated day

    def __init__(self, start_day):
        """
        :type start_day: Object, datetime object
        """
        self.start_day = start_day

    def calc_bus_day(self):
        """Calculate 6 business days from the self.start_day example:
        &gt;&gt;&gt; import BusinessDay
        &gt;&gt;&gt; test = BusinessDay(datetime(2016, 9, 14))
        &gt;&gt;&gt; test.calc_bus_day()
        &gt;&gt;&gt; #2016-09-22
        """
        days_skipped = self.start_day + timedelta(8)

        if datetime.isoweekday(days_skipped) in range(2, 6):
            print("Date {} is a weekday.".format(self.start_day))
            self.return_date = days_skipped
            print("Six days from today will be {}".format(self.return_date))
        else:
            print("Date {} is a weekend.".format(self.start_day))
            self.return_date = days_skipped + timedelta(2)
            print("Six days from the weekend will be {}".format(self.return_date.strftime("%m-%d-%Y")))

        if self.return_date.isoweekday() is 1 or 7:
            if self.return_date == 1:
                self.return_date = self.return_date + timedelta(2)
                return self.return_date - timedelta(2)
            else:
                self.return_date = self.return_date + timedelta(1)
                return self.return_date - timedelta(2)
Bug

if self.return_date.isoweekday() is 1 or 7:


Is always true because 7 is true, adding parenthesis will help you understand:

 if  ( self.return_date.isoweekday() is 1 ) or 7:


To get proper behaviour use:

 if self.return_date.isoweekday() in (1, 7):


Repetition

self.return_date = self.return_date + timedelta(2) 
return self.return_date - timedelta(2)


And:

self.return_date = self.return_date + timedelta(1) 
return self.return_date - timedelta(2)


Use a if/ternary for the first timedelta arguments and flatten these lines.

No class

You have a single function with a single argument, simplify and avoid a class. (You can re-use your function without a class, just put it in a separate module and import it.)