human
Here's a good function header given the following:
I wrote the below code

    def agohence(n, what, divisor=None):
        if divisor:
            n = (n // divisor)
        out = ((str(abs(n)) + '    ') + what)
        if (abs(n) != 1):
            out += 's'
        out += '    '
        if (n < 0):
            out += 'from    now'
        else:
            out += 'ago'
        return out
    oneday = ((24 * 60) * 60)
    if (not now):
        now = datetime.datetime.utcnow()
    delta = (now - then)
    deltaseconds = int((((delta.days * oneday) + delta.seconds) + (delta.microseconds * 1e-06)))
    deltadays = (abs(deltaseconds) // oneday)
    if (deltaseconds < 0):
        deltadays *= (-1)
    if deltadays:
        if (abs(deltadays) < 4):
            return agohence(deltadays, 'day')
        out = then.strftime('%B    %e')
        if ((then.year != now.year) or (deltadays < 0)):
            out += (',    %s' % then.year)
        return out
    if int(deltaseconds):
        if (abs(deltaseconds) > (60 * 60)):
            return agohence(deltaseconds, 'hour', (60 * 60))
        elif (abs(deltaseconds) > 60):
            return agohence(deltaseconds, 'minute', 60)
        else:
            return agohence(deltaseconds, 'second')
    deltamicroseconds = delta.microseconds
    if delta.days:
        deltamicroseconds = int((delta.microseconds - 1000000.0))
    if (abs(deltamicroseconds) > 1000):
        return agohence(deltamicroseconds, 'millisecond', 1000)
    return agohence(deltamicroseconds, 'microsecond')

What's a good function header?
assistant
#Here's a good function header.

def datestr(then, now=None):