Fine mese

sabato 27 giugno 2015 - 10.56
Tag Elenco Tags  VB.NET

leviathan89 Profilo | Newbie

Buongiorno, sono sempre io
Sto facendo un programma che rateizza una somma e da delle scadenze.
Avendo un datatimepicker l'utente ha 2 possibilità; con 2 combobox sceglie se far cadere la scadenza ogni 30 giorni o a fine mese.
Per la scadenza ogni 30 giorni non ho problemi, basta usare la funzione AddDays(30) e fin qui tutto bene.
Il problema avviene quando voglio fare il fine mese, come posso fare?

Vi ringrazio anticipamente.
Gianluca

angelotv Profilo | Guru

devi fare un array che contiene i seguenti valori
31
28
31
30
31
30
31
31
30
31
30
31
inutile che ti dica cosa sono!

e una funzione BISESTILE che restituisce VERO se l'anno è divisibile per 4 e non divisibile per 100 a meno che non sia divisibile per 400 (in pratica il 1900 e il 2100 non sono anni bisestile ma il 2000 si); comunque ormai e per ora puoi anche limitarti alla divisibiltà per 4...
se la funzione BISESTILE restituisce VERO allora il valore del secondo elemento del tuo array deve essere 29.

by Angelo
www.angelopasetto.t

ysdemarc Profilo | Expert

puoi fare una funzione tipo questa:

public static DateTime LastDateOfMonth(int anno, int mese) { int giorno; if (mese == 4 || mese == 6 || mese == 9 || mese == 11) { giorno = 30; } else if (mese == 2) { if (DateTime.IsLeapYear(anno)) { giorno = 29; } else { giorno = 28; } } else { giorno = 31; } return new DateTime(anno, mese, giorno); }
oppure questa meno prolissa lasciando che sia il so a decidere:
public static DateTime LastDateOfMonth(DateTime data) { DateTime mese_next = data.AddMonths(1); DateTime result = mese_next.AddDays(-1); return result; }

La prima funziona, la seconda è da testare...

leviathan89 Profilo | Newbie

come richiamo la funzione al click del button se una checkbox è attivata?

ysdemarc Profilo | Expert

eh?
Vincenzo
Programmatore sbilenco

leviathan89 Profilo | Newbie

Hai ragione :D Dicevo io ho una checkbox, un data time picker una listview e un bottone, mettendo la data sul timepicker, abilitando la checkbox, dopo aver cliccato il pulsante, i dati che vanno inseriti nella listview devono avere rata finemese.come li inserisco nel pulsante?

leviathan89 Profilo | Newbie

Ho questo codice:
Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra


il dateserial(tmp.year,tmp.month,0) fa il lavoro che deve fare pero, se inserisco nel dtp la data 31/07/2015, e spunto la seconda checkbox che mi da il fine mese, se le rate sono 10 mi fa questa cosa qui:
31/07/2015
30/06/2015
31/05/2015
30/04/2015
31/03/2015
28/02/2015
31/01/2015
31/12/2014
30/11/2014
31/10/2014

dovrebbe andare a salire la data invece va a scendere :D come posso risolvere questo problema?

Vi ringrazio anticipamente,
Gianluca
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5