Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function TCKN(number) {
- return {
- toString: function() {
- if(!this.isValid()) throw new Error('TCKN hatalı!');
- return this.no();
- },
- isValid: function() {
- var first9 = this.first9();
- var tenth = this.tenth(first9);
- var eleventh = this.eleventh(first9 + tenth);
- return this.no() == first9 + tenth + eleventh;
- },
- no: function() {
- if(number.toString().split('').length < 9) throw new Error('TCKN hatalı!');
- return number.toString();
- },
- first9: function() {
- return this.no().substring(0, 9);
- },
- tenth: function(first9) {
- var oddSum = parseInt(first9.charAt(0)) + parseInt(first9.charAt(2)) +
- parseInt(first9.charAt(4)) + parseInt(first9.charAt(6)) + parseInt(first9.charAt(8));
- var evenSum = parseInt(first9.charAt(1)) + parseInt(first9.charAt(3)) +
- parseInt(first9.charAt(5)) + parseInt(first9.charAt(7));
- return ((oddSum * 7 - evenSum) % 10).toString();
- },
- eleventh: function(first10) {
- var total = 0;
- for(var i = 0; i < first10.split('').length; i++)
- total += parseInt(first10.charAt(i));
- return (total % 10).toString();
- },
- first5: function() {
- return this.no().substring(0, 5);
- },
- last4: function() {
- return this.no().substring(5, 9);
- },
- next: function() {
- var first5 = (parseInt(this.first5()) - 6).toString();
- var last4 = (parseInt(this.last4()) + 2).toString();
- while(true) {
- if(last4.split('').length == 4) break;
- last4 = '0' + last4;
- }
- var first9 = first5 + last4;
- var tenth = this.tenth(first9);
- var eleventh = this.eleventh(first9 + tenth);
- return new TCKN(first9 + tenth + eleventh);
- },
- prev: function() {
- var first5 = (parseInt(this.first5()) + 6).toString();
- var last4 = (parseInt(this.last4()) - 2).toString();
- while(true) {
- if(last4.split('').length == 4) break;
- last4 = '0' + last4;
- }
- var first9 = first5 + last4;
- var tenth = this.tenth(first9);
- var eleventh = this.eleventh(first9 + tenth);
- return new TCKN(first9 + tenth + eleventh);
- }
- };
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement