Пример #1
0
        private string CalcolaDataNascita(string strDataNascita, char chrSesso, ref string strErrore)
        //Calcola una stringa di 4 caratteri in cui i primi 2 sono l'anno (del 1900)
        //segue un carattere rappresentante il mese, infine, seguono le due
        //cifre del giorno di nascita. Se si tratta di una donna il giorno di nascita
        //viene aumentato di 40. Es. maschio 20/12/1971->71T20
        //
        //La data deve essere nel formato: "GG/MM/YYYY" o "GG/MM/YY"
        {
            const string strMesiCF = "ABCDEHLMPRST";
            infoTipoData mioTipoData;
            int          intGiorno  = 0;
            int          intMese    = 0;
            string       strCodData = "";

            strDataNascita = strDataNascita.Trim();
            chrSesso       = chrSesso.ToString().ToUpper()[0];      //Trasformo il carattere in maiuscolo
            //Sesso imprevisto? -> Errore
            if ((chrSesso != 'M') && chrSesso != 'F')
            {
                strErrore = "Sesso imprevisto! \n <CF_PIVA.CalcolaDataNascita>.";
                return("");
            }
            mioTipoData = new infoTipoData();
            //Calcolo l'ANNO
            if (!TrasformaDataOk(strDataNascita, ref mioTipoData, ref strErrore))
            {
                return("");
            }
            if (mioTipoData.anno < 9)
            {
                strCodData = '0' + mioTipoData.anno.ToString();
            }
            else
            {
                strCodData = mioTipoData.anno.ToString();
            }
            //Calcolo il MESE
            intMese    = (int)mioTipoData.mese - 1;
            strCodData = strCodData + strMesiCF[intMese];
            //Calcolo il GIORNO
            if (chrSesso == 'F')                //Femmina?
            {
                intGiorno = (int)mioTipoData.giorno + 40;
            }
            else
            {
                intGiorno = (int)mioTipoData.giorno;
            }
            if (intGiorno < 9)
            {
                strCodData = strCodData + '0' + intGiorno.ToString();
            }
            else
            {
                strCodData = strCodData + intGiorno.ToString();
            }
            return(strCodData);
        }
Пример #2
0
        private bool TrasformaDataOk(string strData, ref infoTipoData dataOut, ref string strErrore)
        //Esegue ctrl semantico e sintattico su una data in formato stringa
        //La data deve essere nel formato: 01/01/1971 o 01/01/71
        {
            bool     blnEsito       = false;
            string   strDataNascita = "";
            DateTime dtDataTest     = DateTime.Today;

            dataOut.anno = ConvertiStringaAnno(strData, ref strErrore);
            if (dataOut.anno == 0 && strErrore != "")
            {
                return(false);
            }

            dataOut.mese = ConvertiStringaMese(strData, ref strErrore);
            if (dataOut.mese == 0)
            {
                return(false);
            }

            dataOut.giorno = ConvertiStringaGiorno(strData, ref strErrore);
            if (dataOut.giorno == 0)
            {
                return(false);
            }

            //Verifico che la data sia semanticamente corretta
            try
            {
                strDataNascita = dataOut.giorno.ToString() + "/" + dataOut.mese.ToString() + "/" + dataOut.anno.ToString();
                dtDataTest     = DateTime.Parse(strDataNascita);
                blnEsito       = true;
            }
            catch
            {
                strErrore = "Data inesistente o errata! <CF_PIVA.TrasformaDataOk>";
            }
            return(blnEsito);
        }
Пример #3
0
		private bool TrasformaDataOk(string strData,ref infoTipoData dataOut, ref string strErrore)
			//Esegue ctrl semantico e sintattico su una data in formato stringa
			//La data deve essere nel formato: 01/01/1971 o 01/01/71
		{
			bool blnEsito = false;
			string strDataNascita = "";
			DateTime dtDataTest = DateTime.Today;
		
			dataOut.anno = ConvertiStringaAnno(strData,ref strErrore);
			if (dataOut.anno == 0 && strErrore != "")
				return false;

			dataOut.mese = ConvertiStringaMese(strData,ref strErrore);
			if (dataOut.mese == 0)
				return false;

			dataOut.giorno = ConvertiStringaGiorno(strData,ref strErrore);
			if (dataOut.giorno == 0)
				return false;

			//Verifico che la data sia semanticamente corretta
			try
			{
				strDataNascita = dataOut.giorno.ToString()+"/"+dataOut.mese.ToString()+"/"+dataOut.anno.ToString();
				dtDataTest = DateTime.Parse(strDataNascita);
				blnEsito = true;
			}
			catch
			{
                strErrore = "Data inesistente o errata! <CodiceFiscale.TrasformaDataOk>";
			}
			return blnEsito;
		}
Пример #4
0
		private string CalcolaDataNascita(string strDataNascita, char chrSesso,ref string strErrore)
			//Calcola una stringa di 4 caratteri in cui i primi 2 sono l'anno (del 1900)
			//segue un carattere rappresentante il mese, infine, seguono le due 
			//cifre del giorno di nascita. Se si tratta di una donna il giorno di nascita 
			//viene aumentato di 40. Es. maschio 20/12/1971->71T20
			//
			//La data deve essere nel formato: "GG/MM/YYYY" o "GG/MM/YY"
		{
			const string strMesiCF = "ABCDEHLMPRST";
			infoTipoData mioTipoData;
			int intGiorno = 0;
			int intMese = 0;
			string strCodData = "";

			strDataNascita = strDataNascita.Trim();
			chrSesso = chrSesso.ToString().ToUpper()[0];//Trasformo il carattere in maiuscolo
			//Sesso imprevisto? -> Errore
			if ((chrSesso!='M') && chrSesso!='F')		
			{
                strErrore = "Sesso imprevisto! \n <CodiceFiscale.CalcolaDataNascita>.";
				return "";
			}
			mioTipoData = new infoTipoData();
			//Calcolo l'ANNO
			if (!TrasformaDataOk(strDataNascita,ref mioTipoData, ref strErrore))
				return "";
			if (mioTipoData.anno<9)
				strCodData = '0' + mioTipoData.anno.ToString();
			else
				strCodData = mioTipoData.anno.ToString();
			//Calcolo il MESE
			intMese = (int)mioTipoData.mese - 1;
			strCodData = strCodData + strMesiCF[intMese];
			//Calcolo il GIORNO
			if (chrSesso=='F')	//Femmina?
				intGiorno = (int)mioTipoData.giorno + 40;
			else
				intGiorno = (int)mioTipoData.giorno;
			if (intGiorno <= 9)
				strCodData = strCodData + '0' + intGiorno;
			else
				strCodData = strCodData + intGiorno;
			return strCodData;
		}