PDA

View Full Version : کلاس تبدیل تاریخ میلادی به شمسی تو #C



turk_programmer
یک شنبه 21 تیر 1383, 11:14 صبح
یکی از دوستانم (www.alphaweblog.com)این کد رو تو #C نوشته که ما هم تو برنامه هامون ازش استفاده میکنیم .
یک کلاس به اسم AlphaDate هست که 7 یا 8 تا تابع مختلف تاریخ داره ...یکیش هم تایخ میلادی رو به شمسی تبدیل میکنه.
فایل کلاسش رو میذارم اینجا .. هر کی خواست دانلود کنه و تو همه محیط های دات نت ازش استفاده کنه.
AlphaDate.cs

شیطونک
جمعه 02 مرداد 1383, 14:26 عصر
اگه همین بخش و یه سرچ کوچیک میکردی یکیشو که آقای نصیری نوشته پیدا میکردی!

حمیدرضاصادقیان
جمعه 02 مرداد 1383, 14:35 عصر
شیطونک جان حالا چرا دوستمون رو دعوا میکنی.ایشون لطف کردن این فایلو برای ما گذاشتن.
آقا دستت دردنکنه.ممنون.

مدرسی
یک شنبه 01 خرداد 1384, 14:35 عصر
راست میگه لطف کرده

M.GhanaatPisheh
دوشنبه 02 خرداد 1384, 03:22 صبح
:flower:
دستتون درد نکنه.

dot_net_lover2
یک شنبه 22 خرداد 1384, 12:03 عصر
یک سری به اینجا هم بزنید
http://www.barnamenevis.org/forum/viewtopic.php?t=2211&start=30

taghavi
سه شنبه 22 اسفند 1385, 12:13 عصر
با سلام ؛ آیا تابع یا کلاسی برای تبدیل تاریخ فارسی به میلادی وجود دارد؟

omid_Ahmadi
سه شنبه 22 اسفند 1385, 12:19 عصر
System.Globalization.PersianCalendar.ToDateTime()

taghavi
سه شنبه 22 اسفند 1385, 12:57 عصر
نشد , میشه مثال بزنید . ببینید من یک textbox دارم که توی اون تاریخ فارسی می نویسم, (1385/01/10) می خوام معادل میلادیش رو پیدا کنم

omid_Ahmadi
سه شنبه 22 اسفند 1385, 13:55 عصر
یعنی چی نمیشه؟

دقیقا همون کدی که نوشتم درست عمل می کنه. مثل زیر:



System.Globalization.PersianCalendar pc = new System.Globalization.PersianCalendar();
MessageBox.Show(pc.ToDateTime(1385,12,22,0,0,0,0). ToString());


نتیجه 13 مارس 2007 (یعنی امروز) رو نشون میده.

ar.shirazi
سه شنبه 22 اسفند 1385, 17:05 عصر
این جا رو هم میتونی ببینی :
http://forum.persiantools.com/t70577.html

__H2__
سه شنبه 22 اسفند 1385, 18:40 عصر
نشد , میشه مثال بزنید . ببینید من یک textbox دارم که توی اون تاریخ فارسی می نویسم, (1385/01/10) می خوام معادل میلادیش رو پیدا کنم

سلام
اگر منظورتان تبدیل String شمسی به تاریخ است.
من یک DLL برای این کار دارم، پس از اضافه کردن آن به Refrence برنامه تان کافیست از دستور زیر استفاده کنید.




Dim X As New IrDate("1385/1/1")
...
...
Dim Year As Integer,Month As Integer, Day As Integer
Year=X.Year
Month=X.Month
Day=X.Day
...
...
...
Dim Y As Date
Y=X.Date



البته کدهایی فوق با VB8 است که میتوانید به #C تبدلش کنید.
اگر خواستید یک کنترلر تقویم بازشو (Popup یا Picker) هم در این DLL است که میتوانید به جای TextBox از آن استفاده کنید و دیگر نیازی به کد نویسی ندارد.

توضیحات
http://www.h-two.info/Products/H2GBN/Default.aspx
دانلود (181KB)
http://www.h-two.info/Download.aspx?File=H2GBN.dll.zip

ardalan_off
جمعه 18 اردیبهشت 1388, 12:24 عصر
بابا این لینکیو که بالا دادی ایراد داره؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟ ؟؟؟؟؟؟؟؟

ghasemweb
شنبه 20 خرداد 1391, 19:49 عصر
تابع زیر تاریخ میلادی سیستم رو به شمسی تبدیل کرده و به صورت رشته بر می گرداند.


using System.Globalization;

public string DateConverter()
{
PersianCalendar PerCal = new PersianCalendar();
string Year, Day, Month;
Year = PerCal.GetYear(DateTime.Now).ToString();
Month = PerCal.GetMonth(DateTime.Now).ToString();
Day = PerCal.GetDayOfMonth(DateTime.Now).ToString();
Day =(Day.Length == 1)?"0"+ Day :Day;
Month =(Month.Length == 1)?"0"+ Month:Month;
return (Year + '/' + Month + '/' + Day);
}

ERIKA
دوشنبه 25 شهریور 1392, 22:39 عصر
سلام
من این کد را برای تبدیل نوشتم



public static DateTime convert2miladi(string shamsi)
{
if (shamsi == string.Empty)
{
return DateTime.Now;
}
else
{
try
{
System.Globalization.PersianCalendar Mdate = new System.Globalization.PersianCalendar();
DateTime shamsidate;
string[] prdate = shamsi.Split('/');
shamsidate = Mdate.ToDateTime(Convert.ToInt32((prdate[0])), Convert.ToInt32(prdate[1]), Convert.ToInt32(prdate[2]), Convert.ToInt32(prdate[3]), Convert.ToInt32(prdate[4]), Convert.ToInt32(prdate[5]), 1 , System.Globalization.GregorianCalendar.ADEra);

return Convert.ToDateTime(shamsidate.ToShortDateString()) ;



}
catch { return DateTime.Now; }
}
}





ولی کدی که من میخام به صورت خروجی بدهد به این صورت باشه //2009-09-03 00:00:00

ولی اینجا خروجی به این صورت هست این را چطور می توانم به اون فرمت خروجی بگیرم //AM 04:05:03 2009-09-03