rem: void date_suivante_echeance ( struct operation_echeance *echeance, GDate *date_courante )
add: GDate *date_suivante_echeance ( struct operation_echeance *echeance, GDate *date_courante )
context: void date_suivante_echeance ( struct operation_echeance *echeance,			      GDate *date_courante ){  if ( !echeance -> periodicite )    {      date_courante = NULL;      return;    }  /* priodicit hebdomadaire */  if ( echeance -> periodicite == 1 )    {      g_date_add_days ( date_courante,			7 );      /* magouille car il semble y avoir un bug dans g_date_add_days qui ne fait pas l'addition si on ne met pas la ligne suivante */      g_date_add_months ( date_courante,			  0 );    }  else    /* priodicit mensuelle */    if ( echeance -> periodicite == 2 )      g_date_add_months ( date_courante,			  1 );    else      /* priodicit annuelle */      if ( echeance -> periodicite == 3 )	g_date_add_years ( date_courante,			   1 );      else	/* priodicit perso */	if ( !echeance -> intervalle_periodicite_personnalisee )	  {	    g_date_add_days ( date_courante,			      echeance -> periodicite_personnalisee );	    /* magouille car il semble y avoir un bug dans g_date_add_days qui ne fait pas l'addition si on ne met pas la ligne suivante */	    g_date_add_months ( date_courante,				0 );	  }	else	  if ( echeance -> intervalle_periodicite_personnalisee == 1 )	    g_date_add_months ( date_courante,				echeance -> periodicite_personnalisee );	  else	    g_date_add_years ( date_courante,			       echeance -> periodicite_personnalisee );    if ( echeance -> date_limite       &&       g_date_compare ( date_courante,			echeance -> date_limite ) > 0 )    date_courante = NULL;}