Пример #1
0
 public static void assertEquals(double a, double b, DoubleReference failures)
 {
     if (a != b)
     {
         failures.doubleValue = failures.doubleValue + 1d;
     }
 }
Пример #2
0
 public static void assertStringEquals(char [] a, char [] b, DoubleReference failures)
 {
     if (!stringsEqual(a, b))
     {
         failures.doubleValue = failures.doubleValue + 1d;
     }
 }
Пример #3
0
    public static double datetimegetYearFromDayNr(double dayNr, DoubleReference remainder)
    {
        double nrOfDays;
        bool   done;
        double year;

        done = false;
        year = 1752d;

        for (; !done;)
        {
            if (datetimeisLeapYear(year, new datetimeSuccess()))
            {
                nrOfDays = 366d;
            }
            else
            {
                nrOfDays = 365d;
            }
            if (dayNr >= nrOfDays)
            {
                dayNr = dayNr - nrOfDays;
                year  = year + 1d;
            }
            else
            {
                done = true;
            }
        }
        remainder.doubleValue = dayNr;

        return(year);
    }
Пример #4
0
 public static void assertTrue(bool b, DoubleReference failures)
 {
     if (!b)
     {
         failures.doubleValue = failures.doubleValue + 1d;
     }
 }
Пример #5
0
    public static double datetimegetMonthFromDayNr(double dayNr, double year, DoubleReference remainder)
    {
        double [] daysInMonth;
        bool      done;
        double    month;

        daysInMonth = datetimegetDaysInMonth(year);
        done        = false;
        month       = 1d;

        for (; !done;)
        {
            if (dayNr > daysInMonth[(int)(month)])
            {
                dayNr = dayNr - daysInMonth[(int)(month)];
                month = month + 1d;
            }
            else
            {
                done = true;
            }
        }
        remainder.doubleValue = dayNr;

        return(month);
    }
Пример #6
0
    public static double test1()
    {
        DoubleReference failures;

        failures             = new DoubleReference();
        failures.doubleValue = 0d;

        assertTrue(isValidNorwegianPersonalIdentificationNumber("10061270707".ToCharArray()), failures);

        return(failures.doubleValue);
    }
Пример #7
0
    public static double charToNumber(char c, DoubleReference failures)
    {
        double val;

        if (isNumber(c, 10d))
        {
            val = getDecimalFromSingleDecimalDigit(c, 10d);
        }
        else
        {
            val = 0d;
            failures.doubleValue = failures.doubleValue + 1d;
        }

        return(val);
    }
    public static double charToNumber(char c, DoubleReference failures)
    {
        double val;

        val = getDecimalFromSingleDecimalDigit(c, 10d);

        if (val > 0d && val <= 9d)
        {
        }
        else
        {
            failures.doubleValue = failures.doubleValue + 1d;
        }

        return(val);
    }
    public static bool erGyldigOrgNummer(char [] orgnummer)
    {
        bool            gyldig;
        double          d1, d2, d3, d4, d5, d6, d7, d8, d9;
        double          sum, rest, kontrollsiffer;
        DoubleReference failures;

        if (orgnummer.Length == 9d)
        {
            failures             = new DoubleReference();
            failures.doubleValue = 0d;
            d1 = charToNumber(orgnummer[0], failures);
            d2 = charToNumber(orgnummer[1], failures);
            d3 = charToNumber(orgnummer[2], failures);
            d4 = charToNumber(orgnummer[3], failures);
            d5 = charToNumber(orgnummer[4], failures);
            d6 = charToNumber(orgnummer[5], failures);
            d7 = charToNumber(orgnummer[6], failures);
            d8 = charToNumber(orgnummer[7], failures);
            d9 = charToNumber(orgnummer[8], failures);
            if (failures.doubleValue == 0d)
            {
                sum            = d1 * 3d + d2 * 2d + d3 * 7d + d4 * 6d + d5 * 5d + d6 * 4d + d7 * 3d + d8 * 2d;
                rest           = sum % 11d;
                kontrollsiffer = 11d - rest;
                if (rest != 1d && kontrollsiffer == d9)
                {
                    gyldig = true;
                }
                else
                {
                    gyldig = false;
                }
            }
            else
            {
                gyldig = false;
            }
        }
        else
        {
            gyldig = false;
        }

        return(gyldig);
    }
Пример #10
0
    public static datetimeDate datetimedayToDate(double dayNr, datetimeSuccess success)
    {
        datetimeDate    date;
        DoubleReference remainder;

        date                  = new datetimeDate();
        success.success       = true;
        remainder             = new DoubleReference();
        remainder.doubleValue = dayNr + 79623d;
        /* Days since 1752-01-01. Day 0: Thursday, 1970-01-01*/
        /* Find year.*/
        date.year = datetimegetYearFromDayNr(remainder.doubleValue, remainder);

        /* Find month.*/
        date.month = datetimegetMonthFromDayNr(remainder.doubleValue, date.year, remainder);

        /* Find day.*/
        date.day = 1d + remainder.doubleValue;

        return(date);
    }
Пример #11
0
    public static bool isValidNorwegianPersonalIdentificationNumber(char [] fnummer)
    {
        bool            gyldig;
        double          d1, d2, d3, d4, d5, d6, d7, d8, d9, d10, d11;
        datetimeDate    aDatetimeDate;
        double          k1, k2;
        DoubleReference failures;

        if (fnummer.Length == 11d)
        {
            failures             = new DoubleReference();
            failures.doubleValue = 0d;
            d1  = charToNumber(fnummer[0], failures);
            d2  = charToNumber(fnummer[1], failures);
            d3  = charToNumber(fnummer[2], failures);
            d4  = charToNumber(fnummer[3], failures);
            d5  = charToNumber(fnummer[4], failures);
            d6  = charToNumber(fnummer[5], failures);
            d7  = charToNumber(fnummer[6], failures);
            d8  = charToNumber(fnummer[7], failures);
            d9  = charToNumber(fnummer[8], failures);
            d10 = charToNumber(fnummer[9], failures);
            d11 = charToNumber(fnummer[10], failures);
            if (failures.doubleValue == 0d)
            {
                aDatetimeDate = getDateFromNorwegianPersonalIdentificationNumber(fnummer, failures);
                if (datetimeisValidDate(aDatetimeDate))
                {
                    if (failures.doubleValue == 0d)
                    {
                        k1 = d1 * 3d + d2 * 7d + d3 * 6d + d4 * 1d + d5 * 8d + d6 * 9d + d7 * 4d + d8 * 5d + d9 * 2d;
                        k1 = k1 % 11d;
                        if (k1 != 0d)
                        {
                            k1 = 11d - k1;
                        }
                        if (k1 == 10d)
                        {
                            failures.doubleValue = failures.doubleValue + 1d;
                        }
                        k2 = d1 * 5d + d2 * 4d + d3 * 3d + d4 * 2d + d5 * 7d + d6 * 6d + d7 * 5d + d8 * 4d + d9 * 3d + k1 * 2d;
                        k2 = k2 % 11d;
                        if (k2 != 0d)
                        {
                            k2 = 11d - k2;
                        }
                        if (k2 == 10d)
                        {
                            failures.doubleValue = failures.doubleValue + 1d;
                        }
                        if (k1 == d10 && k2 == d11 && failures.doubleValue == 0d)
                        {
                            gyldig = true;
                        }
                        else
                        {
                            gyldig = false;
                        }
                    }
                    else
                    {
                        gyldig = false;
                    }
                }
                else
                {
                    gyldig = false;
                }
            }
            else
            {
                gyldig = false;
            }
        }
        else
        {
            gyldig = false;
        }

        return(gyldig);
    }
Пример #12
0
    public static datetimeDate getDateFromNorwegianPersonalIdentificationNumber(char [] fnummer, DoubleReference failures)
    {
        datetimeDate aDatetimeDate;
        double       individnummer;
        double       day, month, year;
        double       d1, d2, d3, d4, d5, d6, d7, d8, d9;

        aDatetimeDate = new datetimeDate();

        d1 = charToNumber(fnummer[0], failures);
        d2 = charToNumber(fnummer[1], failures);
        d3 = charToNumber(fnummer[2], failures);
        d4 = charToNumber(fnummer[3], failures);
        d5 = charToNumber(fnummer[4], failures);
        d6 = charToNumber(fnummer[5], failures);
        d7 = charToNumber(fnummer[6], failures);
        d8 = charToNumber(fnummer[7], failures);
        d9 = charToNumber(fnummer[8], failures);

        if (failures.doubleValue == 0d)
        {
            individnummer = d7 * 100d + d8 * 10d + d9;
            day           = d1 * 10d + d2;
            month         = d3 * 10d + d4;
            year          = d5 * 10d + d6;
            if (individnummer >= 0d && individnummer <= 499d)
            {
                year = year + 1900d;
            }
            else if (individnummer >= 500d && individnummer <= 749d && year >= 54d && year <= 99d)
            {
                year = year + 1800d;
            }
            else if (individnummer >= 900d && individnummer <= 999d && year >= 40d && year <= 99d)
            {
                year = year + 1900d;
            }
            else if (individnummer >= 500d && individnummer <= 999d && year >= 0d && year <= 39d)
            {
                year = year + 1900d;
            }
            else
            {
                failures.doubleValue = failures.doubleValue + 1d;
            }



            aDatetimeDate.year  = year;
            aDatetimeDate.month = month;
            aDatetimeDate.day   = day;
        }

        return(aDatetimeDate);
    }
 public bool Equals(DoubleReference <TRef> other)
 => ReferenceEquals(ReferenceLeft, other.ReferenceLeft) &&
 ReferenceEquals(ReferenceRight, other.ReferenceRight);