这里是一个C#程序,将验证俄罗斯个人和公司的增值税号。请考虑进一步输入验证应该做的(验证传递的增值税数字只包含数字,他们有需要的长度等):
using System;
using System.Linq;
namespace ConsoleApplication1
{
class Program
{
class VatNumber
{
private int[] _numericVatNumber;
public int[] NumericVatNumber { get { return _numericVatNumber; } }
public VatNumber(string vatNumber)
{
_numericVatNumber = vatNumber.ToCharArray().Select(i => int.Parse(i.ToString())).ToArray();
}
public virtual bool IsValid(){return false;}
}
class PersonalVatNumber : VatNumber
{
public override bool IsValid()
{
var n10 = ((2 * NumericVatNumber[0] +
4 * NumericVatNumber[1] +
10 * NumericVatNumber[2] +
3 * NumericVatNumber[3] +
5 * NumericVatNumber[4] +
9 * NumericVatNumber[5] +
4 * NumericVatNumber[6] +
6 * NumericVatNumber[7] +
8 * NumericVatNumber[8]) % 11) % 10;
if (n10 == NumericVatNumber.Last())
return true;
return false;
}
public PersonalVatNumber(string vatNumber)
: base(vatNumber)
{
}
}
class CompanyVatNumber : VatNumber
{
public override bool IsValid()
{
var n11 = ((7 * NumericVatNumber[0] +
2 * NumericVatNumber[1] +
4 * NumericVatNumber[2] +
10 * NumericVatNumber[3] +
3 * NumericVatNumber[4] +
5 * NumericVatNumber[5] +
9 * NumericVatNumber[6] +
4 * NumericVatNumber[7] +
6 * NumericVatNumber[8] +
8 * NumericVatNumber[9]
) % 11) % 10;
if (n11 != NumericVatNumber[10])
return false;
var n12 = ((3 * NumericVatNumber[0] +
7 * NumericVatNumber[1] +
2 * NumericVatNumber[2] +
4 * NumericVatNumber[3] +
10 * NumericVatNumber[4] +
3 * NumericVatNumber[5] +
5 * NumericVatNumber[6] +
9 * NumericVatNumber[7] +
4 * NumericVatNumber[8] +
6 * NumericVatNumber[9] +
8 * NumericVatNumber[10]
) % 11) % 10;
if (n12 == NumericVatNumber.Last())
return true;
return false;
}
public CompanyVatNumber(string vatNumber)
: base(vatNumber)
{
}
}
static void Main(string[] args)
{
var companyVat = new CompanyVatNumber("123456789047");
Console.WriteLine(companyVat.IsValid());
var personalVat = new PersonalVatNumber("1234567894");
Console.WriteLine(personalVat.IsValid());
}
}
}
你需要告诉我们什么是有效的格式之前,人们会帮助你。 – ZombieSheep
尝试给出这些数字的例子并描述适用于格式化的规则。 –
当然,寻找*现有*代码来做到这一点的关键在于它已经体现了俄罗斯增值税号码的具体规定。好的,所以这不适用于所有提问者,但可以想象,buda确实知道如何编程,并且能够在没有帮助的情况下从头开始。对我来说,问题的关键在于不要从头开始。 –