9

What's wrong with this code?

Error(Exception) message :

Not a valid calendar for the given culture.

System.Globalization.CultureInfo ci = new System.Globalization.CultureInfo("fa-Ir"); //Error
ci.DateTimeFormat.Calendar = new System.Globalization.PersianCalendar();
Application.CurrentCulture = ci;

And what's its solution?
Can I add a Calendar type to Windows XP regional option?

shA.t
  • 16,580
  • 5
  • 54
  • 111
ramezani.saleh
  • 571
  • 2
  • 8
  • 17
  • There is some information about the problems with Persian calendar [in MSDN (see bottom of the page)](http://msdn.microsoft.com/en-us/library/system.globalization.persiancalendar.aspx). Maybe it can help a little. – Vlad Mar 27 '11 at 12:10

2 Answers2

5

a dirty reflection-based workaround is here :

http://social.msdn.microsoft.com/forums/en-US/netfxbcl/thread/4768d48e-aa04-4c15-b688-a58fa4373bc9/

Alireza Sabouri
  • 1,426
  • 1
  • 13
  • 21
3

It is explicitly mentioned in the MSDN article for PersianCalendar

Your application should not use a PersianCalendar object as the default calendar for a culture. The default calendar is specified by the CultureInfo.Calendar property and must be one of the calendars returned by the CultureInfo.OptionalCalendars property. Currently, the PersianCalendar class is not an optional calendar for any culture supported by the CultureInfo class and consequently cannot be a default calendar.

You cannot make this work. Use the Calendar as-is.

Hans Passant
  • 922,412
  • 146
  • 1,693
  • 2,536