Merhabalar herkese,
Geçen gün ihtiyaç olduğundan kredi kart numarası kontrolü yapan birşeyler lazım oldu , belki birilerinin işinede yarar..
public enum CreditCardResponse
{
TheWrongCardNumber,
TheCorrectCardNumber
}
public class CreditCard
{
List<int> getOneNumbers = new List<int>();
List<int> getTwoNumbers = new List<int>();
List<int> getTwoNumbersTemp = new List<int>();
public CreditCardResponse CreditCartIsValid(string cardNumber)
{
if (((SingleNumberTotal(cardNumber.Trim().Replace(" ", "")) + DoubleNumberTotal(cardNumber.Trim().Replace(" ", ""))) % 10) == 0)
return CreditCardResponse.TheCorrectCardNumber;
else
return CreditCardResponse.TheWrongCardNumber;
}
private int SingleNumberTotal(string no)
{
int singleTotal = 0;
for (int i = 0; i < no.Length; i++)
if (i % 2 != 0)
{
singleTotal += int.Parse(no[i].ToString());
getOneNumbers.Add(int.Parse(no[i].ToString()));
}
return singleTotal;
}
private int DoubleNumberTotal(string no)
{
for (int i = 0; i < no.Length; i++)
if (i % 2 == 0)
getTwoNumbers.Add(int.Parse(no[i].ToString()) * 2);
for (int s = 0; s < getTwoNumbers.Count; s++)
getTwoNumbersTemp.Add(SingleNumberCount(getTwoNumbers[s]));
return getTwoNumbersTemp.Sum();
}
private int SingleNumberCount(int count)
{
string temp = count.ToString();
int numberTemp = 0;
if (temp.Length > 1)
for (int i = 0; i < temp.Length; i++)
numberTemp += int.Parse(temp[i].ToString());
else
numberTemp = count;
return numberTemp;
}
}
[code:c#]
CreditCard card = new CreditCard();
CreditCardResponse response = card.CreditCartIsValid("1258183272509158");
Method'dan 2 değer dönmektedir. TheWrongCardNumber ve TheCorrectCardNumber 'dir. Corrcect ise doğru bir kart numarasıdır.