PDA

View Full Version : کسی با FarsiLibrary نوشته هادی اسکندری، کار کرده؟



Developer Programmer
جمعه 18 اردیبهشت 1388, 11:55 صبح
به فرض، کاربر در فلان تاریخ ثبت نام میکنه و بعد از 93 روز، اشتراکش تمام میشه.
من با استفاده از کد زیر تونستم تاریخ اتمام اشتراک رو محاسبه کنم... اما نمیتونم بفهمم چند روز به اتمام اشتراک کاربر باقی مونده.

لطفا راهنمایی کنین.



FarsiLibrary.Utils.PersianCalendar pc = new FarsiLibrary.Utils.PersianCalendar();

FarsiLibrary.Utils.PersianDate FromPersianDate = new FarsiLibrary.Utils.PersianDate( textBox1.Text );
int distance = int.Parse( textBox2.Text );
FarsiLibrary.Utils.PersianDate ToPersianDate = new PersianDate( pc.AddDays( FromPersianDate.ToDateTime() , distance ) );

textBox3.Text = ToPersianDate.ToWritten();

faMonthView1.SelectedDateTime = ToPersianDate;

Developer Programmer
چهارشنبه 23 تیر 1389, 23:49 عصر
یه سوالی داشتم ازتون :
میخواستم ببنم توی این عکسی که توی پست زیر گذاشتین ، اون تقویم فارسی رو چطوری به برنامه-تون اضافه کردین ؟!
http://barnamenevis.org/forum/showth...ary#post718303 (http://barnamenevis.org/forum/showthread.php?p=718303&highlight=farsiLibrary#post718303)
من FarsiLibrary رو دارم ، اما وقتی ازش استفاده میکنم ، تقویم میلادی میذاره !!!!
اگه با یه مثال کوچیک راهنماییم کنید ممنون میشم .
تشکر در VB از یه کلاس واسه سویچ بین فارسی و انگلیسی استفاده میکنم

Public Class ClassKeyboardLayout

'''<summary>Changes Keyboard language </summary>

''' <param name="lng">the abbreviation name of language.

''' FA stands for Farsi.

''' EN stands for English</param>

'''<remarks> زبان کیبورد رو بین فارسی و انگلیسی سویچ میکنه</remarks>

'''

Public Shared Sub ChangeKeyboardLayour(ByVal lng As String)

If lng.Trim().ToUpper() = "FA" Then

Thread.CurrentThread.CurrentCulture = New System.Globalization.CultureInfo("FA-IR")

Thread.CurrentThread.CurrentUICulture = Thread.CurrentThread.CurrentCulture

Application.CurrentInputLanguage = InputLanguage.FromCulture(New Globalization.CultureInfo("FA-IR"))

End If

If lng.Trim().ToUpper() = "EN" Then

Thread.CurrentThread.CurrentCulture = New System.Globalization.CultureInfo("EN-US")

Thread.CurrentThread.CurrentUICulture = Thread.CurrentThread.CurrentCulture

Application.CurrentInputLanguage = InputLanguage.FromCulture(New Globalization.CultureInfo("EN-US"))

End If

End Sub

در C#‎ در فایل program.cs همچین کدی رو اضافه میکنم

[STAThread]

static void Main()

{

Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo( "fa-IR" );

Thread.CurrentThread.CurrentUICulture = Thread.CurrentThread.CurrentCulture;



Application.EnableVisualStyles();

Application.SetCompatibleTextRenderingDefault( false );

Application.Run( new Form1() );

}

سورس برنامه بالا هم اینه

public Form1()

{

InitializeComponent();



InputLanguage.CurrentInputLanguage = InputLanguage.FromCulture( new System.Globalization.CultureInfo( "fa-IR" ) ); //Change Windows language into Persian



faMonthView1.DefaultCalendar = faMonthView1.PersianCalendar; //switch to persian calendar

faMonthView1.DefaultCulture = faMonthView1.PersianCulture;// switch to persian culture

faMonthView1.ShowEmptyButton = false;

faMonthView1.Theme = FarsiLibrary.Win.Enums.ThemeTypes.Office2007;

faMonthView1.SelectedDateTime = PersianDate.Now.ToDateTime();



this.Text = " امروز: " + PersianDate.Now.ToWritten(); // show today



}

//******************************

private void button1_Click( object sender , EventArgs e )

{

int distance = int.Parse( textBox2.Text );

DateTime FromDate = new PersianDate( textBox1.Text ); // returns milady

PersianDate ToDate = FromDate.AddDays( distance ); // returns persian



DateTime Today = PersianDate.Now;

TimeSpan Mohlat = ToDate - Today;



textBox3.Text = ToDate.ToString( "d" );

faMonthView1.SelectedDateTime = ToDate;

textBox4.Text = Mohlat.Days.ToString().Trim();

}

//****************************

private void faMonthView1_DrawCurrentDay( object sender , FarsiLibrary.Win.Events.CustomDrawDayEventArgs e )

{



if ( e.Date.DayOfWeek == DayOfWeek.Friday )

{

using ( Pen p = new Pen( Color.Red ) )

using ( SolidBrush br = new SolidBrush( Color.Red ) )

using ( Font font = new Font( "Tahoma" , 9 , FontStyle.Regular ) )

using ( StringFormat fmt = new StringFormat() )

{

string dayNo = toFarsi.Convert( e.Day.ToString() );



fmt.Alignment = StringAlignment.Center;

fmt.LineAlignment = StringAlignment.Center;



if ( e.IsToday )

{

faMonthView1.Painter.DrawSelectedPanel( e.Graphics , e.Rectangle );

}



e.Graphics.DrawString( dayNo , font , br , e.Rectangle , fmt );



e.Handled = true;

}

}

}



private void button2_Click_1( object sender , EventArgs e )

{

int Week = int.Parse(txtWeek.Text);

DateTime FirstDayOfYear = new PersianDate( PersianDate.Now.Year.ToString() + "/01/01" );

PersianDate FirstDayOfWeek = FirstDayOfYear.AddDays( ( Week - 1 ) * 7 );



txtDate.Text = FirstDayOfWeek.ToString( "d" );

faMonthView2.SelectedDateTime = FirstDayOfWeek;



}

//***************

}

MSN_Issue
پنج شنبه 24 تیر 1389, 00:01 صبح
با تشکر فراوان از افشین عزیز .
مشکلم کاملا حل شد به لطف کمک شما .

HAMRAHSOFT.IR
شنبه 27 تیر 1394, 17:04 عصر
سلام دوستان آیا میشه با اینdllتاریخ به صورت حروف نمایش داد
کامل بصورت حروف (یکم مهرماه هزار سییصدو هشتاد چهار) به این صورت؟
میشه؟

HAMRAHSOFT.IR
چهارشنبه 31 تیر 1394, 13:48 عصر
دوستان کسی کار نکرده؟

HAMRAHSOFT.IR
پنج شنبه 01 مرداد 1394, 22:55 عصر
دوستان کسی راحلی سراغ نداره؟

khokhan
جمعه 02 مرداد 1394, 01:38 صبح
دوستان کسی راحلی سراغ نداره؟

.................................................. ..........................................
133503

HAMRAHSOFT.IR
جمعه 02 مرداد 1394, 07:02 صبح
ممنون از شما دوست خوب ولی نمیشه از FarsiLibrary استفاده کرده؟

khokhan
جمعه 02 مرداد 1394, 10:23 صبح
ممنون از شما دوست خوب ولی نمیشه از FarsiLibrary استفاده کرده؟


چرا نمی شه
اگه بخوایم چیزی شبیه نمونه پست شماره7 رو با کلاس FarsiLibraryبه دست بیاریم بایستی بنویسیم :




private void Form1_Load(object sender, EventArgs e)
{

textBox1.Text = FarsiLibrary.Utils.ToWords.ToString(PersianDate.No w.Day)+"م"+
" " + PersianDate.PersianMonthNames.Default[PersianDate.Now.Month] + " "
+ FarsiLibrary.Utils.ToWords.ToString(PersianDate.No w.Year);

}