public void CalculateDates() { txtDataInicioNivel.Text = ControloDateValidation.GetComposedDate(mAnoInicioNivel, mMesInicioNivel, mDiaInicioNivel); txtDataFimNivel.Text = ControloDateValidation.GetComposedDate(mAnoFimNivel, mMesFimNivel, mDiaFimNivel); txtDataInicioUF.Text = ControloDateValidation.GetComposedDate(mAnoInicioUF, mMesInicioUF, mDiaInicioUF); txtDataFimUF.Text = ControloDateValidation.GetComposedDate(mAnoFimUF, mMesFimUF, mDiaFimUF); }
// devolve a data mais vaga das datas ordenadas especificadas. as datas não preenchidas são ignoradas. // "datas" é um ArrayList de string(). cada uma das datas é um string() de 3 posicoes private string[] GetVaguerFromTopDates(ArrayList datas) { string[] DataMaisVaga = null; if (datas.Count == 0) { throw new ArgumentException("'datas' must have at least one item"); } else if (datas.Count > 0) { int i = 0; int count = datas.Count; string[] dataActual = null; DataMaisVaga = (string[])(datas[i]); i = i + 1; while (i < count) { dataActual = (string[])(datas[i]); ControloDateValidation.PartialComparisonResult result = ControloDateValidation.ComparePartialDate(DataMaisVaga, dataActual); if (result == ControloDateValidation.PartialComparisonResult.Equal || result == ControloDateValidation.PartialComparisonResult.PartialyEqual) { // no caso de as datas serem parcialmente iguais é necessário // escolher a que for mais vaga que, para este efeito, é a // mais(correcta) switch (ControloDateValidation.IsMoreCompleteThan(DataMaisVaga, dataActual)) { case ControloDateValidation.ComparisonResult.Equal: // sao igualmente vagas. ignorar break; case ControloDateValidation.ComparisonResult.FirstOne: // "DataMaisVaga" é a data mais completa, trocamos para ficarmos com a data mais vaga DataMaisVaga = dataActual; break; case ControloDateValidation.ComparisonResult.SecondOne: // "DataMaisVaga" já é a data mais vaga. ignorar break; } } else { // só interessa procurar a data mais vaga de entre as datas // parcialmente iguais. break; } i = i + 1; } } return(DataMaisVaga); }