System.Globalization.HijriCalendar.GetAdvanceHijriDate C# (CSharp) Method

GetAdvanceHijriDate() private method

private GetAdvanceHijriDate ( ) : int
return int
        int GetAdvanceHijriDate() {

            int hijriAdvance = 0;

            const int parameterValueLength = 255;
            StringBuilder parameterValue = new StringBuilder(parameterValueLength);
            bool rc = Win32Native.FetchConfigurationString(true, m_HijriAdvanceRegKeyEntry, parameterValue, parameterValueLength);
            if( rc )
            {
                String str = parameterValue.ToString();
                if (String.Compare(str, 0, m_HijriAdvanceRegKeyEntry, 0, m_HijriAdvanceRegKeyEntry.Length, true, CultureInfo.InvariantCulture) == 0) {
                    if (str.Length == m_HijriAdvanceRegKeyEntry.Length)
                        hijriAdvance = -1;
                    else {
                        str = str.Substring(m_HijriAdvanceRegKeyEntry.Length);
                        try {
                            int advance = Int32.Parse(str.ToString(), CultureInfo.InvariantCulture);
                            if ((advance >= MinAdvancedHijri) && (advance <= MaxAdvancedHijri)) {
                                hijriAdvance = advance;
                            }
                        }
                        // If we got garbage from registry just ignore it.
                        // hijriAdvance = 0 because of declaraction assignment up above.
                        catch (ArgumentException) { }
                        catch (FormatException) { }
                        catch (OverflowException) { }
                    }
                }
            }

            return (hijriAdvance);
        }