#1 Sat 20 April 2024 16:08
- Djakaridja
- Juste Inscrit !
- Date d'inscription: 27 Feb 2023
- Messages: 2
[Arcmap Python] Calcul de date
Bonjour la communauté
J'ai besoin d'aide en python.
J'ai 3 champs.
Le champ X est en format texte et contient les expressions suivantes: 1an; 2ans; 3ans
Le champ Y est au format date jj/mm/AAAA
Le champ Z est aussi au format date jj/mm/aaaa.
Sous Arcmap, je veux automatiser la mise à jour du champ Z de sorte que lorsque je vais entrer la date dans le Y,
si X==1an, Z soit égal à AAAA de Y +1
si X==2ans, Z soit égal à AAAA de Y +2
si X==3ans, Z soit égal à AAAA de Y +3
Je vous remercie d'avance pour votre contribution
Hors ligne
#2 Fri 26 April 2024 09:58
- Djakaridja
- Juste Inscrit !
- Date d'inscription: 27 Feb 2023
- Messages: 2
Re: [Arcmap Python] Calcul de date
J'ai pu trouver la solution. Je la mets là si cela peut aider quelqu'un plu tard.
X= delai_co
Y= date_dia
Z= date_f_d
Code:
# Import system modules
import arcpy
import sys
from datetime import datetime, timedelta
inFeatures = r"\\srv-esriapp\connexion\sig_ev@srv-esribdd_dc.sde\sig.ev.ev_arbre_GBA"
fields = ['date_dia', 'delai_co', 'date_f_d']
# Retrieve the field values
data = []
with arcpy.da.UpdateCursor(inFeatures, fields) as cursor:
for row in cursor:
date_dia, delai_co, date_f_d = row
if date_dia is None or date_dia == "":
# Si date_dia est nul ou vide, ne rien renseigner dans date_f_d
row[2] = None
elif delai_co in ["Aucun", "Indefini", None, ""]:
# Si delai_co est "Aucun", "Indefini", nul ou vide, mettre nul ou ne rien renseigner dans date_f_d
row[2] = None
else:
if delai_co == "1_an":
date_f_d = date_dia + timedelta(days=365)
elif delai_co == "2_ans":
date_f_d = date_dia + timedelta(days=365*2)
elif delai_co == "3_ans":
date_f_d = date_dia + timedelta(days=365*3)
# Update the field
row[2] = date_f_d
cursor.updateRow(row)Dernière modification par Djakaridja (Fri 26 April 2024 09:58)
Hors ligne
#3 Sat 27 April 2024 21:44
Re: [Arcmap Python] Calcul de date
Merci pour le partage!
Hors ligne


