python program z kalendarzem

0

mam napisać program, który wyświetli datę lanego poniedziałku, korzystają z tego, że komenda subprocess.check_output(["ncal", "-e",'2000']).decode() wyświetla datę wielkanocy dla dowolnego roku.

import subprocess
n=int(input('podaj'))
E=subprocess.check_output(["ncal", "-e",str(n)]).decode()
print(E)

pytanie jak dodać ten jeden dzień, aby przesunęło datę o ten jeden dzień?

0

Tak na szybko napiszę zrobisz to tak zamiast Twojego print wpisujesz:

a = E.split()
a[0] = int(a[0]) + 1
print(a) 

tylko że musisz dodać jeszcze warunek if bo jak będzie a[0] = 30 (oryginalnie) a jak wiemy kwiecien ma 30 dni to musisz zmienic na 1 maj i jeżeli wypadnie 31 marca to na 1 kwietnia .

0

właśnie nie za bardzo o to mi chodziło. Chcę żeby to działało bez tych ifów, po prostu dla każdej dodanej czy też odjętej liczby żeby przekształcało datę automatycznie na inny miesiąc.

1

Sparsuj ten output do datetime.datetime i dodaj jeden dzień ;]

nowa_data = data_w_datetime + timedelta(days=1)
0

A można jakoś dokładniej? Jestem początkująca a mam ten sam problem

0

Polecam zerknąć też tutaj:
http://4programmers.net/Forum/Inne/159962-python_biblioteka_wielkanoc?p=1024324
bo to ta sama praca domowa...

0

A czy mogłabym prosić o jakieś wskazówki do 'sparsowania' tego napisu na odpowiedni? Bo kombinuje i kombinuje i wciąż jakieś Errory

0

Pokaz jak kombinujesz.

0

Na przykład tak:

#!/usr/bin env python3
from datetime import datetime
from datetime import timedelta
data_w_datetime=datetime.datetime(["ncal", "-e",'19900'])
nowa_data = data_w_datetime + timedelta(days=1)
print(nowa_data)

bez <code> kodu nie da się czytać - msm

1

No brawo, a może teraz łaskawie użyjesz mózgu a nie paluszków?
Rozumiem ze jest ban na dokumentacje i nie możesz zerknąć w nią samodzielnie, wiec będę łaskawy:

classmethod datetime.strptime(date_string, format)

Return a datetime corresponding to date_string, parsed according to format. (...)

A jak wygląda "format"? Cóż, znów dokumentacja na ratunek:
https://docs.python.org/3.5/library/datetime.html#strftime-and-strptime-behavior

A tu:
https://docs.python.org/3.5/library/datetime.html#datetime-objects
jak sobie łaskawie przescrollujesz troszeczkę jest sekcja "Examples of working with datetime objects:" gdzie jest podany przykład (!) dokładnie jak ten którego potrzebujesz. Ale znów: trzeba MYŚLEĆ.

dt = datetime.strptime("21/11/06 16:30", "%d/%m/%y %H:%M")

0

Nie wiem po co ta ironia, ale dziękuje...

To forum jest po to żeby pomagać a nie ubliżać innym więc nie wiem po co ta ironia, ale dziękuje za pomoc.

1 użytkowników online, w tym zalogowanych: 0, gości: 1