-
دوست عزیز در ابتدا باید از کار بسیار زیبایی که انجام دادید تشکر کنم.
من تا حالا چند نمونه از این جور برنامه هارو استفاده کردم اما بدون تعارف این یکی خیلی به دلم نشست.
چندتا مطلب رو لازم دونستم خدمتتون عرض کنم:
1- متاسفانه در موقع نمایش نام فارسی ماه کلمه فروردین اشتباه تایپ شده. (به صورت فرودرین) البته من سورس برنامه رو ندارم و گرنه مطلب تکراری نمی زدم
2- اگه براتون مقدور باشه برای توابعی که مقدار یا نام روز و ماه یا سال رو نمایش میدن این امکان رو بذارید که تاریخ رو از طریق یک پارامتر دریافت کنند. فعلا تا جایی که من دیدم فقط مقدار جاری رو نمایش میدن.
باز هم از dll خوبی که نوشتین تشکر می کنم
-
ممنون از لطفتون
1- با عرض پوزش به خاطر اشتباه تایپی که پیش آمده ، سورس تو صفحه 3 پست 24 هست میتونی از اونجا دانلود کنی .
2- کار زیاد سختی نیست ، اگر بی زحمت خودت اضافه کن. شرمنده من 2 روز بیشتر مرخصی ندارم به همین خاطر وقت نمیکنم .
اگر اضافه کردی همراه با سورس در اختیار دوستان قرار بده .
و در ضمن کدهایی که تغییر میدی رو مشخص کن که توسط شما تغییر پیدا کرده .
-
Bug: مشکل جدید که در ساختار تاریخ پیدا کردم ، با TimeDaylight هست .
راه حل : هنوز پیدا نشده .
مشکل : عدم انجام عملیات به درستی به علت تغییر اختلاف زمانی از +3:30 به +4:30 .
-
نقل قول:
نوشته شده توسط mahdi_farhani
عدم انجام عملیات به درستی به علت تغییر اختلاف زمانی از +3:30 به +4:30 .
در جریان هستی که ساعت اروپا هم چند روزه که 1 ساعت به جلو کشیده شده و الان هم همون 3:30+ هستیم؟
-
نه اینو نمیدونستم ، ممنون از اینکه گفتی
-
نقل قول: نمایش تاریخ فارسی به هر حالتی که دوست داشته باشید
دوست عزیز میشه خواهش کنم DatePicker رو هم کد نویسی کنی، فکر میکنم با این تسلطی که شما داری براتون خیلی راحت باشه، باز هم تشکر از زحمتی که کشیدی.
-
نقل قول: نمایش تاریخ فارسی به هر حالتی که دوست داشته باشید
وقتی می خوام از تو دیتابیس که تاریخ های میلادی رو تو او ن ذخیره کردم یه روزی از تاریخ رو سرچ کنم ارور "شنبه" Incorrect syntax inear رو میده. به نظر شما مشکل از کجاست؟
-
نقل قول: نمایش تاریخ فارسی به هر حالتی که دوست داشته باشید
سلام مهدي جان
سوالي كه فكر مي كنم كسي مطرح نكرد ( شايدم مطرح كرده و من نديدم ) اين هست
كه آيا در تقويم شما سال كبيسه هم مد نظر بوده يا نه؟
يعني ما با خيال راحت مي تونيم از اون استفاده كنيم؟
با تشكر
=================================
زندگي هنگامه فريادهاست
يا علي
-
نقل قول: نمایش تاریخ فارسی به هر حالتی که دوست داشته باشید
ایشون فعلا در حال سپری کردن خدمت سربازی هستن.:لبخند:
ولی به هر حال FarhaniPersianDate سال کبیسه رو هم پشتیبانی میکنه.
میتوننین با خیال راحت استفاده کنید.
موفق باشید.
-
نقل قول: نمایش تاریخ فارسی به هر حالتی که دوست داشته باشید
سلام شما علاوه بر این Dll که دوستمون معرفی کرده برای تاریخ فارسی از خود دات نت هم می تونید استفاده کنید . از System.Globalization استفاده کنید .
از کلاس PersianCalendar و متد های GetYear و ... استفاده کنید.
در ضمن هر کی سرس تبدیل تاریخ رو خواست بگه ...(سال کبیسه هم در نظر می گیره)
-
نقل قول: نمایش تاریخ فارسی به هر حالتی که دوست داشته باشید
نقل قول:
نوشته شده توسط
s_mehdi
سلام شما علاوه بر این Dll که دوستمون معرفی کرده برای تاریخ فارسی از خود دات نت هم می تونید استفاده کنید . از System.Globalization استفاده کنید .
از کلاس PersianCalendar و متد های GetYear و ... استفاده کنید.
در ضمن هر کی سرس تبدیل تاریخ رو خواست بگه ...(سال کبیسه هم در نظر می گیره)
دوست عزیز این dll که با سورس اینجا گذاشته شده ،با استفاده از Persiancalnder خوده دات ایجاد شده ..... سال کبیسه هم در نظر میگیره .
-
نقل قول: نمایش تاریخ فارسی به هر حالتی که دوست داشته باشید
سلام دوتان عزيز
از دوست گرامي كه زحمت اين تاپيك رو كشيده و اين dll رو آماده كرده متشكرم . اگه ممكنه اين دوست عزيز منو با اين آيدي Add كنه تا بنونيم راحتتر راجع به افزودن Datetimepicker فارسي به اين Dll صحبت كنيم
براي تمامي دوستان آرزوي موفقيت دارم.
اگه دوستان هم در زمينه DataBase و مخصوصا Sql Server امري داشتن در خدمتم.
shahabsaed@yahoo.com
-
نقل قول: نمایش تاریخ فارسی به هر حالتی که دوست داشته باشید
با عرض سلام خدمت دوستان
می خواستم بدونم چه جوری میشه توی application یک تقویم فارسی نمایش داد ؟
-
نقل قول: نمایش تاریخ فارسی به هر حالتی که دوست داشته باشید
سلام به همگي
مختصر و مفيد مي گم. من فايل مربوطه رو دانلود كردم و بع عنوان رفرنس هم به پروژه اضافه كردم. (دارم asp.net مي نويسم) الآن مي خوام تاريخ توي يك Label بهم نشون داده بشه اما بعد از اجرا علامت / را نميگذاره چكار بايد بكنم؟
ممنون
Imports farhaniPersianDate
Partial Class MasterPage2
Inherits System.Web.UI.MasterPage
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Dim perdate As New farhaniPersianDate.cDate
perdate.displyFormat = "امروز:;yy;mm;dd;dn"
perdate.separatorChar = "/"
Dim dat As String = perdate.getPersianDate()
Label1.Text = dat
End Sub
End Class
-
نقل قول: نمایش تاریخ فارسی به هر حالتی که دوست داشته باشید
خوب شما بش نگفتیت که براتون seprator بزاره
امروز;/;
-
نقل قول: نمایش تاریخ فارسی به هر حالتی که دوست داشته باشید
سلام
آیا تقویم فارسی که بصورت کنترل تقویم نمایش داده بشه
-
نقل قول: نمایش تاریخ فارسی به هر حالتی که دوست داشته باشید
سلام آقاي فرهاني .
من از كامپونت شما استفاده كردم . ولي يه مشكل در تبديل تاريخ ميلادي به شمسي وجود دارد كه اگر رفع شود ممنون ميشم .
من با استفاده از كامپونت شما تاريخ ميلادي سرور را گرفته و به شمسي تبديل كرده و در Textbox نمايش ميدهم . مثلاً اين 2008/11/30 09:00:00 ب.ظ تبديل ميشود به 1387/09/10 و نمايش پيدا ميكند در تكست .
سپس با زدن يك دكمه عمليات فوق بر عكس شده يعني 1387/09/10 تبديل ميشود به 2008/11/30 09:00:00 ب.ظ و در بانك ذخيره ميشود . حال براي نمايش دوباره تاريخ به صورت شمسي من تاريخ درج شده ميلادي را از بانك گرفته و به شمسي تبديل ميكنم . ولي مشكلي كه وجود دارد اين است كه تاريخ يك روز زود تر نمايش پيدا ميكند يعني مينويسد . تاريخ : دوشنبه 11 آذر 1387 ساعت : 9:00:00 PM .
اين هم تابع اي كه با استفاده از كتابخانه شما نوشته شده است كه تاريخ ميلادي را گرفته و به شمسي تبديل ميكند و لي همين طور كه گفتم يك روز تاريخ را جلو ميزنه .
public string ChangeDate(string Date)
{
Farhani.PersianDate.PerDate pc = new Farhani.PersianDate.PerDate();
pc.GetPersianDate(Convert.ToDateTime(Date));
return pc.DayOfWeek.ToString() + " " + pc.Day.ToString() + " " + pc.MonthName.ToString() + " " + pc.Year.ToString();
}
-
نقل قول: نمایش تاریخ فارسی به هر حالتی که دوست داشته باشید
سلام آقای فرهانی.
می گم اگه خود تاریخ میلادی رو هم اضافه کنید به تاریخ هاش دیگه توووپ میشه.چون خود DateTime مثلا MonthName نداره.
-
1 ضمیمه
نقل قول: نمایش تاریخ فارسی به هر حالتی که دوست داشته باشید
این مشکل برمیگرده به Daylight ولی این مشکل رو یه جورایی حل کردم . نمیدونم شما از کدوم نسخه دارید استفاده میکنید .برای همین بهتره که از این dll استفاده کنی ،تست کن اگر مشکل داشت بهم خبر بده تا مشکلشو برطرف کنم .
دوست عزیز برای تاریخ میلادی از form های مختلف خوده دات نت میتونی استفاده کنی ، سرچ کنی پیدا میکنی .
-
نقل قول: نمایش تاریخ فارسی به هر حالتی که دوست داشته باشید
سلام. نه DLL شما مسکلی نداره ، ممنون. مشکل من با تابع GetDateTimeFormats خود دات نت هست که توی هیچ فرمتیش نام ماه رو بصورت کامل مثلا December نشون نمیده. تنها بصورت کوتاه 3 حرفی مثلا Nov یا Dec نشون میده. ظاهرا 36 فرمت هم بیشتر نداره. ممنون
-
نقل قول: نمایش تاریخ فارسی به هر حالتی که دوست داشته باشید
نقل قول:
نوشته شده توسط
merlin_vista
سلام آقاي فرهاني .
من از كامپونت شما استفاده كردم . ولي يه مشكل در تبديل تاريخ ميلادي به شمسي وجود دارد كه اگر رفع شود ممنون ميشم .
من با استفاده از كامپونت شما تاريخ ميلادي سرور را گرفته و به شمسي تبديل كرده و در Textbox نمايش ميدهم . مثلاً اين 2008/11/30 09:00:00 ب.ظ تبديل ميشود به 1387/09/10 و نمايش پيدا ميكند در تكست .
سپس با زدن يك دكمه عمليات فوق بر عكس شده يعني 1387/09/10 تبديل ميشود به 2008/11/30 09:00:00 ب.ظ و در بانك ذخيره ميشود . حال براي نمايش دوباره تاريخ به صورت شمسي من تاريخ درج شده ميلادي را از بانك گرفته و به شمسي تبديل ميكنم . ولي مشكلي كه وجود دارد اين است كه تاريخ يك روز زود تر نمايش پيدا ميكند يعني مينويسد . تاريخ : دوشنبه 11 آذر 1387 ساعت : 9:00:00 PM .
اين هم تابع اي كه با استفاده از كتابخانه شما نوشته شده است كه تاريخ ميلادي را گرفته و به شمسي تبديل ميكند و لي همين طور كه گفتم يك روز تاريخ را جلو ميزنه .
public string ChangeDate(string Date)
{
Farhani.PersianDate.PerDate pc = new Farhani.PersianDate.PerDate();
pc.GetPersianDate(Convert.ToDateTime(Date));
return pc.DayOfWeek.ToString() + " " + pc.Day.ToString() + " " + pc.MonthName.ToString() + " " + pc.Year.ToString();
}
سلام .
مشكل فوق فقط روي هاست ميباشد و روي لوكال مشكلي ندارد . :متفکر:
با تشكر از شما :قلب:
-
نقل قول: نمایش تاریخ فارسی به هر حالتی که دوست داشته باشید
هرچی هست ، مشکل سر این ساعت هست . باید یکسری اطلاعات بدست بیاریم که چرا این مشل پیش میاد . متاسفانه چون دسترسی به سایتتون ندارم نمیتونم ریز بشم ، ولی اگر لفط کنید خودتون یکسری تست ها رو انجام بدید ممنون میشیم ، شاید اصلاً یک باگ باشه که من متوجه اون نشدم .
Farhani.PersianDate.PerDate myDate = new Farhani.PersianDate.PerDate();
Response.Write("Perdate = " + myDate.GetPersianDate() + "<br />");
DateTime IranTime = new DateTime();
IranTime=DateTime.Now.ToUniversalTime().AddHours(3 ).AddMinutes(30);
Response.Write("ServerTime= " +IranTime.ToString() + "<br />");
با استفاده از این کد ببین خروجی چی بهت میده ، این کد فقط ساعت سیستم را به GMT برمیگردونه ، حالا اگر ساعت که برگشت داده شده با ساعت محلی یکی بود اون موقعه مشکل جایی دیگه هست
-
نقل قول: نمایش تاریخ فارسی به هر حالتی که دوست داشته باشید
ممنون از شما
من میخوام اختلاف دو تاریخ شمسی رو بدست بیارم ولی تو تاریخ ماههایی که 30 یا 31 ندارن مشکل ایجاد میکنه
اگه اشتباه میکنم راهنماییم کنین
البته من از DateDiff استفاده کردم اگه با توابع شما میشه کدش رو برام بذارید
-
نقل قول: نمایش تاریخ فارسی به هر حالتی که دوست داشته باشید
از عملگر - (منها) استفاده کنید . تابع خاصی نداره
-
نقل قول: نمایش تاریخ فارسی به هر حالتی که دوست داشته باشید
اول مي خواستم بابت زحمتي كه كشيديد ازتون تشكر كنم، واقعا كامپوننت بدرد بخوريه:تشویق: ولي تو كد هاي مربوط به سربارگذاري اپراتورها به نظرم مشكل وجود داره به طور مثال در مورد اپراتور نامساوي كد فعلي به اين صورته
public static bool operator !=(PerDate firstPersianDate, PerDate otherPersianDate)
{
if (firstPersianDate.Day != otherPersianDate.Day)
if (firstPersianDate.Month != otherPersianDate.Month)
if (firstPersianDate.Year != otherPersianDate.Year)
return true;
return false;
}
كه از اونجايي كه وقتي هر جزء (روز، ماه يا سال) دو تاريخ با هم مساوي نباشند اونوقت خود دو تاريخ هم با هم مساوي نيستند پس كد فوق بايد به صورت زير اصلاح بشه
public static bool operator !=(PerDate firstPersianDate, PerDate otherPersianDate)
{
if (firstPersianDate.Day != otherPersianDate.Day ||
firstPersianDate.Month != otherPersianDate.Month ||
firstPersianDate.Year != otherPersianDate.Year)
return true;
else
return false;
}
البته با اجازه من يه سري بهينه سازياي ديگه هم تو كد شما انجام دادام، خوب فكر كنم خوبي پروژه هاي اپن سورس همينه ديگه، اگه خواستيد اونا رو هم براتون ميذارم:لبخندساده:
موفق باشيد.
-
نقل قول: نمایش تاریخ فارسی به هر حالتی که دوست داشته باشید
دوست عزیز لطف کنید که تغییرات رو پابلیش کنید تا دوستان استفاده کنن
-
نقل قول: نمایش تاریخ فارسی به هر حالتی که دوست داشته باشید
در مورد اپراتور < جاي دستور مقايسه ماه و روز بايد جابجا شود
public static bool operator >(PerDate firstPersianDate, PerDate otherPersianDate)
{
if (firstPersianDate.Year > otherPersianDate.Year)
return true;
if (firstPersianDate.Day > otherPersianDate.Day)
return true;
if (firstPersianDate.Month > otherPersianDate.Month)
return true;
return false;
}
كد اصلاح شده
public static bool operator >(PerDate firstPersianDate, PerDate otherPersianDate)
{
if (firstPersianDate.Year > otherPersianDate.Year)
return true;
if (firstPersianDate.Month > otherPersianDate.Month)
return true;
if (firstPersianDate.Day > otherPersianDate.Day)
return true;
return false;
}
-
نقل قول: نمایش تاریخ فارسی به هر حالتی که دوست داشته باشید
در مورد متد IsValidDate مقايسه دوم day>31 لزومي ندارد چرا كه تو دستور if قبلي اين مقايسه انجام شده اين مطلب در مورد مقايسه دوم day>30 هم صادقه.
public Boolean IsValidDate(String date)
{
if (!IsFullDate(date))
date = FullDate(date);
if (date.Length < 10)
throw new InvalidDateException("تاریخ وارد شده معتبر نیست");
int year = int.Parse(date.Substring(0, 4), CultureInfo.InvariantCulture);
int month = int.Parse(date.Substring(5, 2), CultureInfo.InvariantCulture);
int day = int.Parse(date.Substring(8, 2), CultureInfo.InvariantCulture);
if (year < 0 || month > 12 || month < 0 || day < 0 || day > 31)
return false;
if (month <= 6 && day > 31)
return false;
if (month >= 7 && day > 30)
return false;
if (month == 12 && day > 29)
if (!pcMydate.IsLeapYear(year))
return false;
else
if (day > 30)
return false;
return true;
}
كد بهينه شده
public Boolean IsValidDate(String date)
{
if (!IsFullDate(date))
date = FullDate(date);
if (date.Length < 10)
throw new InvalidDateException("تاریخ وارد شده معتبر نیست");
int year = int.Parse(date.Substring(0, 4), CultureInfo.InvariantCulture);
int month = int.Parse(date.Substring(5, 2), CultureInfo.InvariantCulture);
int day = int.Parse(date.Substring(8, 2), CultureInfo.InvariantCulture);
if (year < 0 || month > 12 || month < 0 || day < 0 || day > 31)
return false;
//if (month <= 6 && day > 31) مقايسه تكراري
// return false;
if (month >= 7 && day > 30)
return false;
if (month == 12 && day > 29)
if (!pcMydate.IsLeapYear(year))
return false;
//else
// if (day > 30) مقايسه تكراري
// return false;
return true;
}
البته اين باگ نيست، فقط اين تغييرات باعث بهينه شدن كد ميشه.
-
نقل قول: نمایش تاریخ فارسی به هر حالتی که دوست داشته باشید
سلام دوستان
دست آقای فرهانی درد نکنه ، یه سوال:
میشه کاری کرد که با استفاده از تاریخ شمسی مثلا 1387/03/11 روز هفته رو بدست آورد،یعنی بگه چندشنبست؟
ممنون میشم راهنماییم کنید ;)
-
نقل قول: نمایش تاریخ فارسی به هر حالتی که دوست داشته باشید
خوب بدش به تابع و dayname رو بگیر
-
نقل قول: نمایش تاریخ فارسی به هر حالتی که دوست داشته باشید
-
نقل قول: نمایش تاریخ فارسی به هر حالتی که دوست داشته باشید
سلام و با تشکر
19 را نونزدهم گرفته اید.
-
2 ضمیمه
نقل قول: نمایش تاریخ فارسی به هر حالتی که دوست داشته باشید
با سلام
سورس کد تصحیح شده
-
نقل قول: نمایش تاریخ فارسی به هر حالتی که دوست داشته باشید
مشکلش چی بوده که تصحیح کردید ؟
-
نقل قول: نمایش تاریخ فارسی به هر حالتی که دوست داشته باشید
جناب فراهانی اگه لطف کنین آخرین نسخه رو به انضمام تمام تغییرات به دو صورت کامپایل شده و سورس مجددا قرار بدید ممنون می شیم.
en|fa|T
-
نقل قول: نمایش تاریخ فارسی به هر حالتی که دوست داشته باشید
ممنون از فایل مفیدی که اینجا گذاشتید.
من نمی دونم از این کامپوننت رو چه طوری باید در یه وب سایت جواب بگیرم.
. به فایل کلاسم اضافش کردم و در صفحه ای که می خوام ازاین کامپوننت استفاده کنم، این کد رو به قسمت سورسش اضافه می کنم:
<%@ Register Assembly="FarhaniPersianDate" Namespace="Farhani.PersianDate" TagPrefix="custom" %>
و موقع استفاده هم این کد رو می نویسم:
<custom:FarhaniPersianDate ID="FarhaniPersianDate1" runat="server" />
چه طوری ازش استفاده کنم؟
-
نقل قول: نمایش تاریخ فارسی به هر حالتی که دوست داشته باشید
سلام
من به این شکل از این کلاس استفاده کردم اما روز رو یکی جلوتر نشان می ده به طور مثال امروز 24 هست در خروجی 25 نشان میده من به این شکل استفاده کردم :
PerDate date = new PerDate();
lblDateYear.Text = date.Year.ToString();
lblDateMonth.Text = date.Month.ToString();
lblDateDays.Text = date.Day.ToString();
-
نقل قول: نمایش تاریخ فارسی به هر حالتی که دوست داشته باشید
با تشکر از آقای فراهانی
ولی یه مشکلی وجود داره
تو سال 90 یه روز عقبه.
-
نقل قول: نمایش تاریخ فارسی به هر حالتی که دوست داشته باشید
با سلام
دستتون درد نکنه
میشه بفرمایین چطوری میشه با داشتن تاریخ تولد یه نفر سنش رو بدست اورد البته با استفاده از این برنامه
-
نقل قول: نمایش تاریخ فارسی به هر حالتی که دوست داشته باشید
نقل قول:
نوشته شده توسط
ho_612
با تشکر از آقای فراهانی
ولی یه مشکلی وجود داره
تو سال 90 یه روز عقبه.
آخرین نسخه رو استفاده کنید ، الان تمام سیستم های من دارن از این استفاده میکنند و مشکل ندارند
نقل قول:
نوشته شده توسط
saeidfar
با سلام
دستتون درد نکنه
میشه بفرمایین چطوری میشه با داشتن تاریخ تولد یه نفر سنش رو بدست اورد البته با استفاده از این برنامه
تاریخ امروز منهای تاریخ تولد میشه سنش