|
2 | 2 |
|
3 | 3 | import datetime |
4 | 4 | import os |
| 5 | +from typing import Union |
5 | 6 |
|
6 | 7 | from django.conf import settings |
7 | 8 | from markdown2 import markdown |
@@ -42,18 +43,46 @@ def as_month(f, num_letters=0): |
42 | 43 | return _months[n] |
43 | 44 |
|
44 | 45 |
|
45 | | -def as_date(f): |
46 | | - if not isinstance(f, datetime.date): |
47 | | - return f |
| 46 | +def as_date(f: Union[datetime.date, datetime.datetime]) -> str: |
| 47 | + """Fecha o timestamp en formato día/mes/año. |
48 | 48 |
|
49 | | - today = datetime.date.today() |
50 | | - if f.year == today.year: |
51 | | - return '{}/{}'.format(f.day, as_month(f, 3)) |
52 | | - else: |
53 | | - return '{}/{}/{}'.format(f.day, as_month(f, 3), f.year) |
| 49 | + Ver también: `as_short_date`. |
| 50 | +
|
| 51 | + Ejemplo de uso: |
| 52 | +
|
| 53 | + >>> import datetime |
| 54 | + >>> print(as_date(datetime.date(1992, 1, 2))) |
| 55 | + 2/ene/1992 |
| 56 | + """ |
| 57 | + if isinstance(f, (datetime.date, datetime.datetime)): |
| 58 | + return f'{f.day}/{as_month(f, 3)}/{f.year}' |
| 59 | + return str(f) |
| 60 | + |
| 61 | + |
| 62 | +def as_short_date(f: Union[datetime.date, datetime.datetime]) -> str: |
| 63 | + """Fecha o timestamp en formato día/mes/año, omitiendo el |
| 64 | + año si es el mismo del año actual. |
| 65 | +
|
| 66 | + Ver también: `as_date`. |
| 67 | +
|
| 68 | + Ejemplo de uso: |
| 69 | +
|
| 70 | + >>> import datetime |
| 71 | + >>> current_year = datetime.date.today().year |
| 72 | + >>> print(as_short_date(datetime.date(current_year, 1, 2))) |
| 73 | + 2/ene |
| 74 | + >>> print(as_short_date(datetime.date(1992, 1, 2))) |
| 75 | + 2/ene/1992 |
| 76 | + """ |
| 77 | + if isinstance(f, (datetime.date, datetime.datetime)): |
| 78 | + today = datetime.date.today() |
| 79 | + if f.year == today.year: |
| 80 | + return f'{f.day}/{as_month(f, 3)}' |
| 81 | + return f'{f.day}/{as_month(f, 3)}/{f.year}' |
| 82 | + return str(f) |
54 | 83 |
|
55 | 84 |
|
56 | | -def date_from_now(days=1): |
| 85 | +def date_from_now(days=1) -> datetime.date: |
57 | 86 | today = datetime.date.today() |
58 | 87 | delta = datetime.timedelta(days=days) |
59 | 88 | return today + delta |
|
0 commit comments