IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ASP.NET Discussion :

Calcul date limite d'Analyse en jours ouvrés


Sujet :

ASP.NET

  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Octobre 2005
    Messages : 39
    Par défaut Calcul date limite d'Analyse en jours ouvrés
    Dans un champ texte , ça fonctionne avec ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    DateTime startD = Convert.ToDateTime(doc.GetStringValue( "IS_DateOuv" )); 
    int numVal = Int32.Parse(doc.GetStringValue( "ACPA_CriticiteAbbr" )); 
     
     
    double businessDays = numVal; 
     
    int DoW = (int)startD.DayOfWeek; 
     
    double temp = businessDays + DoW + 1; 
     
    if (DoW != 0) temp --; 
     
     
     
    DateTime calcendD = startD.AddDays(Math.Floor(temp / 5)*2-DoW + temp- 2* Convert.ToInt32(temp % 5 == 0)) ; 
     
    returnValue = Convert.ToString(calcendD);

    Sur un champ date , ça fonctionne pas

    J'ai essayé la conversion suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    DateTime startD = Convert.ToDateTime(doc.GetStringValue( "IS_DateOuv" )); 
    int numVal = Int32.Parse(doc.GetStringValue( "ACPA_CriticiteAbbr" )); 
     
     
    double businessDays = numVal; 
     
    int DoW = (int)startD.DayOfWeek; 
     
    double temp = businessDays + DoW + 1; 
     
    if (DoW != 0) temp --; 
     
     
     
    DateTime calcendD = startD.AddDays(Math.Floor(temp / 5)*2-DoW + temp- 2* Convert.ToInt32(temp % 5 == 0)) ; 
    returnValue = Convert.ToDateTime(calcendD));

    Comment faut-il faire la conversion pour alimenter mon champ date calculé ?

    Merci d'avance de votre retour.

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    777
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2003
    Messages : 777
    Par défaut
    Pourquoi veux tu convertir un datetime en datetime ???

  3. #3
    Membre averti
    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Octobre 2005
    Messages : 39
    Par défaut
    ça parait con, on est d'accord, mais je n'arrive pas à alimenter mon champ calculé alors j'ai essayé ça .

    En faite c'est le returnValue qui passe pas ? Peut-être


    Si je fini par returnValue = calcendD;

    ça ne marche pas non plus

    Comment retourner la valeur date dans un champ date calculé ?

  4. #4
    Membre émérite
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    777
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2003
    Messages : 777
    Par défaut
    Dans ton code il nous manque le contexte, c'est à dire qu'on ne sait pas ce qu'est returnvalue et ce qui se passe après...

  5. #5
    Membre averti
    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Octobre 2005
    Messages : 39
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    DateTime startD = Convert.ToDateTime(doc.GetStringValue( "IS_DateOuv" ));  // Date ouverture ticket
    int numVal = Int32.Parse(doc.GetStringValue( "ACPA_CriticiteAbbr" )); 		// Nombre de jour pour traiter le ticket
     
     
    double businessDays = numVal; 
     
    int DoW = (int)startD.DayOfWeek; 
     
    double temp = businessDays + DoW + 1; 
     
    if (DoW != 0) temp --; 
     
     
     
    DateTime calcendD = startD.AddDays(Math.Floor(temp / 5)*2-DoW + temp- 2* Convert.ToInt32(temp % 5 == 0)) ; 
     
    returnValue = Convert.ToString(calcendD);		// Date limite pour répondre au ticket en jours ouvrés (sans compter les samedi et les dimanche)
    Dans mon formulaire j'ai un champ IS_DateOuv qui correspond à la date d'ouverture d'un ticket, on défini en combien de jour on doit traiter le ticket.

    Et on cherche à obtenir la date limite pour répondre au ticket en jours ouvrés (sans compter les samedi et les dimanche)

    Le code ci dessus décrit le code d'un champ texte calculé.

    Moi j'aimerais que ça fonctionne pour un champ date calculé

  6. #6
    Membre émérite
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    777
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2003
    Messages : 777
    Par défaut
    ca j'avais bien compris. Mais on ne sait toujours ce qui se passe ensuite...que fais tu avec ton returnvalue ? Quel est le type de control asp ? (si ma mémoire est bonne il n'y a pas de contrôle datetimepicker en stantard)
    J'imagine que tu as bien une date dans returnvalue donc c'est que c'est la suite qui ne fonctionne pas...? Tu as vérifié en debuguant ?

  7. #7
    Membre averti
    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Octobre 2005
    Messages : 39
    Par défaut
    J'ai regardé dans ma table sql

    Le champ texte me ramène la valeur suivant "20/12/2017 00:00:00" //idem à l'écran
    Le champ date me ramène la valeur "NULL" //champ vide à l'écran

  8. #8
    Membre émérite
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    777
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2003
    Messages : 777
    Par défaut
    Citation Envoyé par ZOUZI Voir le message
    J'ai regardé dans ma table sql

    Le champ texte me ramène la valeur suivant "20/12/2017 00:00:00" //idem à l'écran
    Le champ date me ramène la valeur "NULL" //champ vide à l'écran
    Tant que tu nous donnes par le reste du code on ne pourra pas t'aider. Confirme nous aussi qu'en déboguant tu as bien vu que returnvalue etait du type datetime et qu'il contenait la date espérée...

  9. #9
    Membre averti
    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Octobre 2005
    Messages : 39
    Par défaut
    Je peux pas montrer tout le code , je développe dans une solution AVANTEAM.net ou tout le code est maché par leur solution.

    J'ai réussi à m'en sortir avec ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    DateTime startD = Convert.ToDateTime(doc.GetStringValue( "IS_DateOuv" ));
    int numVal = Int32.Parse(doc.GetStringValue( "ACPA_CriticiteAbbr" ));
     
     
    double businessDays = numVal;
     
    int DoW = (int)startD.DayOfWeek;
     
    double temp = businessDays + DoW + 1;
     
    if (DoW != 0) temp --;
     
    DateTime calcendD = startD.AddDays(Math.Floor(temp / 5)*2-DoW + temp- 2* Convert.ToInt32(temp % 5 == 0)) ;
    doc.SetValues("ACPA_DateLimiteAnalyse",Convert.ToString(calcendD));  
    returnValue = Convert.ToString(calcendD);
    Mon champ texte alimente mon champ date et ça marche!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 14
    Dernier message: 11/09/2015, 15h12
  2. [Q] VB Excel: Macros calcul de date jours ouvrés
    Par naouara17 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 04/05/2007, 13h59
  3. Réponses: 1
    Dernier message: 10/08/2006, 14h43
  4. calcul de date en jours ouvrés
    Par verbatim56 dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 03/03/2006, 09h45

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo