PDA

View Full Version : سوال: فرمول تبدیل تاریخ میلادی به شمسی ؟



elham1611
پنج شنبه 14 اردیبهشت 1391, 19:12 عصر
با سلام
من هرچی گشتم یک کامپوننت پیدا کنم که تاریخ سرور رو ساده به شمسی بده پیدا نکردم ( مثلا 1391/12/30)
اینه که میخوام تاریخ سرور رو بگیرم خودم تبدیلش کنم به شمسی . حالا کسی همچین فرمولی سراغ داره؟

mahmood_4246
پنج شنبه 14 اردیبهشت 1391, 19:15 عصر
از کامپوننت persia میتونی استفاده کنی
خود دات نت هم persianCalander داره

hamid_shrk
پنج شنبه 14 اردیبهشت 1391, 19:17 عصر
چرا کامپوننت پرشیا که هست :
86637
اینم مثالش :


Persia.Calendar.ConvertToPersian(Your Date).Simple

mahmood_4246
پنج شنبه 14 اردیبهشت 1391, 19:35 عصر
پرشیا کلن چیزه خوبیه
امکاناتش باسه تاریخ زیاده .. شمسی میلادی قمری .. تبدیل عدد فارسی انگلیسی و ..
شما میتونی یه Extension method استفاده کنی که کار تبدیل رو یا خودت با متدهای دات نت انحام بدی یا از پرشیا .. هر وقت یه متغییر DateTime داشته باشی به عنوان یه متد کار میکنه

elham1611
پنج شنبه 14 اردیبهشت 1391, 23:16 عصر
ممنون. به نظر کامپوننت persia راه حل باشه . ولی من یک مشکل پیدا کردم نمیدونم چرا کامپوننت به toolbox اضافه نمیشه و خطای زیر رو میده.
کامپوننتهای دیگه رو خطا نمیده (اول میزارم توی پوشه bin ) . فکر کردم شاید کامپوننت persia خراب شده باشه از چنند جای دیگه هم دانلود کردم ولی باز همین خطا رو داد.
حتی با ویژوال استدیو 2010 هم همین خطا رو داد.

hamid_shrk
پنج شنبه 14 اردیبهشت 1391, 23:23 عصر
دوست عزیز این کامپوننت کنترل نیست تا بتونید به ToolBox اضافه کنیدش باید یا using Persia; کنید یا اینکه همونطور که بالا گفتم ازش فقط استفاده کنید :


string persiandate = Persia.Calendar.ConvertToPersian(DateTime.Now.Date ).Simple;


پ.ن : فایل persia.dll رو به پوشه Bin اضافه کنید بعد اون دستور هارو که گفتم بنویسید .

elham1611
جمعه 15 اردیبهشت 1391, 00:20 صبح
ممنون. مشکل حل شد :لبخندساده:
امیدوارم این فایلهای dll تاثیر چندانی در سرعت بارگذاری نزارن.

فقط تفاوت این دو نوع dll رو نفهمیدم. چرا بعضیهاشون به toolbox میشه اضافه کرد بعضیها رو نمیشه. مگه هر دو تا کامپوننت نیستن؟
فکر کنم اونی که بشه اضافه کرد کامپوننت کنترلی اسمش باشه.و با آزمایش و خطا باید فهمید جزو کدام دسته هست.

بازم متشکر.

hamid_shrk
جمعه 15 اردیبهشت 1391, 00:23 صبح
خیر اصلا تاثیری نداره تو سرعت.
این کامپوننت چیزی نیست جز یک کلاس که اومده DLL ش کرده شخصه سازنده.

robojalal
سه شنبه 20 تیر 1391, 02:27 صبح
سلام دوست عزیز
این فایلی که گذاشتی رو دانلود کردم
نمیدونم کجا باید کپی کنم :ناراحت:
اگه امکان داره مسیر کپی فایل رو بهم بگید
یه نمونه برنامه هم اگه داری بذاری ممنون میشم
من تازه VB.Net رو شروع کردم
دستت درد نکنه

fakhravari
سه شنبه 20 تیر 1391, 02:42 صبح
سلام دوست عزیز
این فایلی که گذاشتی رو دانلود کردم
نمیدونم کجا باید کپی کنم :ناراحت:
اگه امکان داره مسیر کپی فایل رو بهم بگید
یه نمونه برنامه هم اگه داری بذاری ممنون میشم
من تازه VB.Net رو شروع کردم
دستت درد نکنه
اگر پروژه از نوع وب سایت توی پوشه bin باید کپی کنید.
اگر نوع app است باید reference کنید.
اگر با پوشه bin اشنایی ندارید توی روت یه پوشه به همین نام درست کنید و dll اونجا بزارید

در کل برای تبدیل من هم کلندر پیشنهاد میکنم.
خود Persia باز نویسی از کلندر به احتمال زیاد

robojalal
سه شنبه 20 تیر 1391, 04:39 صبح
تشکر
ولی خب من دارم یه ساعت و تقویم درست میکنم
نباید کار زیاد مشکلی باشه
میخوام یه فرم باز بشه و داخل یه تکس باگس ساعت و داخل یه تکس باگس دیگه تاریخ نشون بدم
البته به صورت شمسی

ممنون میشم کمکم کنین
یا حق .....:متفکر::لبخند:

fakhravari
سه شنبه 20 تیر 1391, 12:50 عصر
تلاش چیزه خوبی .
اما قبلا یه نمونه قشنگ درست شده.
http://hasheminezhad.com/jqdatepicker

robojalal
سه شنبه 20 تیر 1391, 13:47 عصر
سلام
حرف شما درست
ولی خب همانطور گفتم تازه شروع کردم و کار آنچنانی هم نمیخوام انجام بدم
همین یه کار هست
دیگه کاری با VB.Net ندارم
اگه امکان داره سورس کاملشو برام بذارید ممنون میشم
فقط با VB.net البته ناگفته نباشد من دارم با قسمت VB این نرم افزار کار میکنم
دست همه دوستان درد نکنه
:خجالت:

fakhravari
سه شنبه 20 تیر 1391, 21:35 عصر
همین یه کار هست
دیگه کاری با VB.Net ندارم یعنی چی؟:متفکر:

robojalal
پنج شنبه 29 تیر 1391, 17:53 عصر
سلام
یعنی با این نرم افزار دیگه کار نمیکنم
اگه امکان داره سورس این برنامه رو بذارید
مثلا من یه تاریخ میلادی 2012/07/19 دارم میخوام تبدیل به شمسی کنم . این فرمولش چی هست ؟
اگه کسی سورس کامل این رو داره برام بذاره
خیلی سرچ کردم
با ماژول هست و .....
من یه تایمر دارم که داخل اون ساعت رو هر بار رفرش می کنه و میخوام تاریخ هم رفرش کنه
تاریخ به صورت شمسی

ممنون

fakhravari
پنج شنبه 29 تیر 1391, 18:06 عصر
معلوم تازه واردی .
public static class ShamsiDate
{
static PersianCalendar persianCalendar = new PersianCalendar();
public static string ToShamsi(DateTime miladiDate)
{
string year = persianCalendar.GetYear(miladiDate).ToString();
string month = persianCalendar.GetMonth(miladiDate).ToString().Pa dLeft(2, '0');
string day = persianCalendar.GetDayOfMonth(miladiDate).ToString ().PadLeft(2, '0');
return year + "/" + month + "/" + day;
}

public static DateTime ToMiladi(string shamsiDate)
{
int year = int.Parse(shamsiDate.Substring(0, 4));
int month = int.Parse(shamsiDate.Substring(5, 2));
int day = int.Parse(shamsiDate.Substring(8, 2));
return persianCalendar.ToDateTime(year, month, day, 0, 0, 0, 0);
}


}

robojalal
شنبه 07 مرداد 1391, 00:51 صبح
سلام
نتونستم راه اندازی کنم
این برنامه با چه زبانی هست ؟
این پروژه رو باید تا هفته بعد 16 مرداد تحویل بدم به استادم
میدونم برای شما خیلی ساده هست ولی خب برای من مثل کوه دماوند هست :لبخند:
این برنامه رو من به زبان بیسیک میخوام
اینم عکسش :
90332
دستتون درد نکنه

fakhravari
شنبه 07 مرداد 1391, 01:06 صبح
جواب آخر از من
http://www.developerfusion.com/tools/convert/vb-to-csharp

soheiladv
دوشنبه 11 شهریور 1392, 10:17 صبح
سلام لطفا کمک کنید
من یک تاریخ اینظوری دارم نمیتونم به شمسی تبدیلش کنم
8/30/13