Skip to content

Commit 997542b

Browse files
committed
init
0 parents  commit 997542b

File tree

2 files changed

+66
-0
lines changed

2 files changed

+66
-0
lines changed

BankingCardValidator.py

+50
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
import math
2+
3+
class BankingCardValidator:
4+
def __init__(self):
5+
pass
6+
7+
def set_card_number(self, card_number):
8+
self.card_number = int(card_number)
9+
10+
def get_card_number(self):
11+
return self.card_number
12+
13+
def seprate_card_number(self):
14+
return [int(x) for x in str(self.card_number)]
15+
16+
def calculate_card_number_length(self):
17+
if(self.card_number != None):
18+
return int(math.log10(self.card_number)) + 1
19+
20+
def multipy(self, number):
21+
if(number % 2 == 0):
22+
return number * 1
23+
else:
24+
return number * 2
25+
26+
def loop_calculations(self, numbers_array):
27+
answer = 0
28+
final = 0
29+
for number in numbers_array:
30+
answer = self.multipy(number)
31+
if(answer > 9):
32+
answer = answer - 9
33+
final += answer
34+
return final
35+
36+
def is_length_valid(self):
37+
if(16 == self.calculate_card_number_length()):
38+
return True
39+
else:
40+
return False
41+
42+
def is_card_valid(self):
43+
if(not self.is_length_valid()):
44+
return False
45+
46+
card_number_arr = self.seprate_card_number() # converts card number into array
47+
if(self.loop_calculations(card_number_arr) % 10 == 0):
48+
return True
49+
else:
50+
return False

README.md

+16
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
# ماژول تایید شماره کارت های بانکی
2+
3+
امروزه در اکثر نرم افزارهای تولیدی نیاز به استفاده از شماره کارت های اعتباری یا کارت های بانکی برای پرداخت یک سری از مزایا یا کمک های غیر نقدی برای پرسنل و یا افراد تحت پوشش شرکت های و موسسات مختلف می باشد.
4+
از طرفی متاسفانه در حال حاضر هیچ الگوریتمی برای تشخیص صحت کد ورودی در اختیار برنامه نویسان قرار داده نشده است که به راحتی بتوانند صحت کد های 16 رقمی که به عنوان شماره کارت در اختیار آنها قرار می دهند را تشخیص دهند که همین مساله نگرانی هایی را در بحث کنترل پرداخت ها و امورمالی بوحود می آورد.
5+
6+
این ماژول به شما کمک می کند تا بتوانیید شماره کارت بانکی را مورد تایید قرار بدین تا متوجه درست بودن یا نبودن شماره کارت بشید...
7+
8+
## نحوه استفاده
9+
10+
```python
11+
checker = BankingCardValidator()
12+
checker.set_card_number(1234567891234567)
13+
checker.is_card_valid()
14+
```
15+
16+
[منبع الگوریتم استفاده شده](http://www.aliarash.com/article/creditcart/credit-debit-cart.htm)

0 commit comments

Comments
 (0)