PDA

View Full Version : خبر: کامپوننت افزودن قابلیت های تاریخ شمسی به کلاس DateTime



alireza_s_84
پنج شنبه 16 مهر 1388, 19:40 عصر
سلام دوستان:
جدیدا یک کامپوننتی تهیه کردم که یک سری خصوصیات به کلاس DateTime اضافه می کنه و دیگه نیازی به نوشتن کد و یا استفاده از کامپوننت های مختلف و افزودن NameSpace و ... نداره.
تنها کاری که باید بکنید اینه که اونو توی پوشه Bin پروژه تون کپی کنید تا به راحتی از مزایای اون استفاده کنید.
ویژگیهای کامپوننت:
نام: ExtensionDate
تعداد متدها: فعلا 9 متد
خصوصیات کامپوننت:
متد DayCount: بدست آوردن تعداد روزهای ماه مورد نظر(برای مثال ماه 2 میلادی 28 روز را برگشت میدهد)
متد ToMiladiDate: تبدیل تاریخی شمسی به تاریخ میلادی (دارای دو OverLoad میباشد یکی با پارامتر DateTime و دیگری با پارامتر String)
متد PersianDayName: نام فارسی روز را در تاریخ مورد نظر برگشت میدهد(مثلا در تاریخ 1388/07/16 روز پنجشنبه را برگشت میدهد)
متد PersianMonthName: نام فارسی ماه را در تاریخ مورد نظر برگشت میدهد(مثلا در تاریخ 1388/07/16 مهر را برگشت میدهد)
متد ToShortShamsiDate: تبدیل تاریخ میلادی به تاریخ شمسی کوتاه(مثلا 1388/07/16)
متد ToLongShamsiDate: تبدیل تاریخ میلادی به تاریخ شمسی بلند(مثلا 16 مهر 1388)
متد ToFullShamsiDate: تبدیل تاریخ میلادی به تاریخ شمسی کامل(مثلا پنجشنبه 16 مهر 1388)
متد GetStartDate: تاریخ شروع میلادی تاریخ شمسی مورد نظر را برگشت میدهد(مثلا برای تاریخ 1388/07/16 تاریخ میلادی 2009/10/08 را برگشت میدهد) مخصوص جستجو و فیلتر کردن داده ها در دیتابیس.
متد GetEndDate: تاریخ پایان میلادی تاریخ شمسی مورد نظر را برگشت میدهد(مثلا برای تاریخ 1388/07/16 تاریخ میلادی 2009/10/31 را برگشت میدهد) مخصوص جستجو و فیلتر کردن داده ها در دیتابیس.

همانطور که گفتم تنها کاری که باید بکنید اضافه کردن این کامپوننت به پوشه Bin پروژه تون هست و کار دیگه ای نیاز نیست انجام بدین.
نحوه فراخونی هم اینطوری هست. برای مثال جهت بدست آوردن تاریخ شمسی امروز بصورت زیر عمل میکنیم:


DateTime.Today.ToFullShamsiDate(); //Return پنجشنبه 16 مهر 1388
DateTime.Today.PersianMonthName(); //Return مهر

DateTime SignupDate = DateTime.Parse("2009/07/10");
SignupDate.ToFullShamsiDate(); //
دوستان عزیز در مورد کامپوننت نظر بدین و متدهای مورد نیازتون رو بگید تا بهش اضافه کنم.
ضمنا در صورتیکه با مشکل یا باگی در استفاده از اون مواجه شدین حتما مطرح کنید.(انتقاد سازنده رو ایمیل کنید یا پیغام خصوصی بذارید )
موفق باشید

asp2.net
سه شنبه 28 مهر 1388, 16:23 عصر
اين كار را انجام دادم ولي عمل نكرد

alireza_s_84
دوشنبه 11 آبان 1388, 04:14 صبح
اين كار را انجام دادم ولي عمل نكرد
شما کدی که نوشتین رو بذار تا بهتون بگم ایراد کارت کجاست.

mn_zandy63
یک شنبه 17 آبان 1388, 17:54 عصر
اين كار را انجام دادم ولي عمل نكرد

تا Add refrence نشه و از using استفاده نکنی نميتونی از extension استفاده کنی.

negarg
جمعه 02 بهمن 1388, 18:03 عصر
سلام دوستان:
جدیدا یک کامپوننتی تهیه کردم که یک سری خصوصیات به کلاس DateTime اضافه می کنه و دیگه نیازی به نوشتن کد و یا استفاده از کامپوننت های مختلف و افزودن NameSpace و ... نداره.
تنها کاری که باید بکنید اینه که اونو توی پوشه Bin پروژه تون کپی کنید تا به راحتی از مزایای اون استفاده کنید.
ویژگیهای کامپوننت:
نام: ExtensionDate
تعداد متدها: فعلا 9 متد
خصوصیات کامپوننت:
متد DayCount: بدست آوردن تعداد روزهای ماه مورد نظر(برای مثال ماه 2 میلادی 28 روز را برگشت میدهد)
متد ToMiladiDate: تبدیل تاریخی شمسی به تاریخ میلادی (دارای دو OverLoad میباشد یکی با پارامتر DateTime و دیگری با پارامتر String)
متد PersianDayName: نام فارسی روز را در تاریخ مورد نظر برگشت میدهد(مثلا در تاریخ 1388/07/16 روز پنجشنبه را برگشت میدهد)
متد PersianMonthName: نام فارسی ماه را در تاریخ مورد نظر برگشت میدهد(مثلا در تاریخ 1388/07/16 مهر را برگشت میدهد)
متد ToShortShamsiDate: تبدیل تاریخ میلادی به تاریخ شمسی کوتاه(مثلا 1388/07/16)
متد ToLongShamsiDate: تبدیل تاریخ میلادی به تاریخ شمسی بلند(مثلا 16 مهر 1388)
متد ToFullShamsiDate: تبدیل تاریخ میلادی به تاریخ شمسی کامل(مثلا پنجشنبه 16 مهر 1388)
متد GetStartDate: تاریخ شروع میلادی تاریخ شمسی مورد نظر را برگشت میدهد(مثلا برای تاریخ 1388/07/16 تاریخ میلادی 2009/10/08 را برگشت میدهد) مخصوص جستجو و فیلتر کردن داده ها در دیتابیس.
متد GetEndDate: تاریخ پایان میلادی تاریخ شمسی مورد نظر را برگشت میدهد(مثلا برای تاریخ 1388/07/16 تاریخ میلادی 2009/10/31 را برگشت میدهد) مخصوص جستجو و فیلتر کردن داده ها در دیتابیس.

همانطور که گفتم تنها کاری که باید بکنید اضافه کردن این کامپوننت به پوشه Bin پروژه تون هست و کار دیگه ای نیاز نیست انجام بدین.
نحوه فراخونی هم اینطوری هست. برای مثال جهت بدست آوردن تاریخ شمسی امروز بصورت زیر عمل میکنیم:


DateTime.Today.ToFullShamsiDate(); //Return پنجشنبه 16 مهر 1388
DateTime.Today.PersianMonthName(); //Return مهر

DateTime SignupDate = DateTime.Parse("2009/07/10");
SignupDate.ToFullShamsiDate(); //
دوستان عزیز در مورد کامپوننت نظر بدین و متدهای مورد نیازتون رو بگید تا بهش اضافه کنم.
ضمنا در صورتیکه با مشکل یا باگی در استفاده از اون مواجه شدین حتما مطرح کنید.(انتقاد سازنده رو ایمیل کنید یا پیغام خصوصی بذارید )
موفق باشید
خیلی ممنون همینو می خواستم. کلی کیف کردم:قلب::تشویق:کار هم کرد
مرسی

aserfg
شنبه 01 اسفند 1388, 16:09 عصر
نحوه استفاده صحیح متدهای کنترل:

ابتدا اسمبلی رو توی شاخه bin پروژه قرار داده از منوی website -add refrence-browse

کنترل رو به پروژه اضافه کنید وبعد:


Label1.Text = ExtensionDate.PersianDayName(System.DateTime.Today ).ToString();
Label2.Text=ExtensionDate.ToFullShamsiDate(System. DateTime.Today).ToString();

shirrrshah
چهارشنبه 25 فروردین 1389, 00:32 صبح
bin کجاست دیگه ، تو mysql?

daffy_duck376
پنج شنبه 02 اردیبهشت 1389, 19:06 عصر
bin کجاست دیگه ، تو mysql?
ربطی به my sql نداره توی |روژه های وب یه پوشه به اسم bin هست که dll ها رو توی اون کپی می کنن و برنامه نویسی تحت ویندوز کافی است add reference کنی VS خودش میدونه چی کار کنه . کپی میکنه کنار فایل exe خروجی

ym3015
پنج شنبه 02 اردیبهشت 1389, 23:36 عصر
سلام،
کسی میدونه چطور میشه اختلاف بین دو تا تاریخ را بصورت روز حساب کرد؟
بذارین اینطور بگم،
تابعی هست که دو تاریخ 1389/02/01 و 1389/02/15 را بگیره و خروجی اون 14 یعنی اختلاف بین دو تاریخ باشه؟
ممنون

alireza_s_84
جمعه 03 اردیبهشت 1389, 02:11 صبح
سلام،
کسی میدونه چطور میشه اختلاف بین دو تا تاریخ را بصورت روز حساب کرد؟
بذارین اینطور بگم،
تابعی هست که دو تاریخ 1389/02/01 و 1389/02/15 را بگیره و خروجی اون 14 یعنی اختلاف بین دو تاریخ باشه؟
ممنون


DateTime.Parse("1389/02/15").Subtract(DateTime.Parse("1389/02/01"))

rukarimi
چهارشنبه 13 مرداد 1389, 11:48 صبح
سلام
چرا این کد کار نمیکنه؟

DateTime SignupDate = DateTime.Parse("2010/07/22");
txtnew.Text = SignupDate.ToFullShamsiDate();

یعنی چرا با تاربخ 1389/04/31 مشکل داره؟
فکرکنم مشکل از خود convertor درون .net باشه !
لطفا اگه کسی می دونه چطوری می شه این مشکل رو حل کرد بگه!

Shahab_H
جمعه 15 مرداد 1389, 14:31 عصر
این با VS 2010 کار نمی کنه
چطور میشه سازگارش کرد؟

ciscozagros
چهارشنبه 20 مرداد 1389, 16:39 عصر
برای خواندن تاریخ شمسی از بانک و نمایش به صورت شمسی در دیتا گرید باید چکار کنیم لطفا کد #c رو هم بذارید ممنون

ciscozagros
چهارشنبه 20 مرداد 1389, 16:44 عصر
برای خواندن تاریخ میلادی از بانک و نمایش به صورت شمسی در دیتا گرید باید چکار کنیم لطفا کد C#‎ رو هم بذارید ممنون

si6arp
پنج شنبه 02 تیر 1390, 02:21 صبح
با سلام و خشته نباشید . ممنون از کامپوننت خوبتنون اما »»
کامپوننت شما رو به پروژه اضافه کردم ولی با این اررور مواجه شدم :



Could not load file or assembly 'ExtensionDate.DLL' or one of its dependencies. Invalid access to memory location.
(Exception from HRESULT: 0x800703E6)


** پروژه روی دات نت 4 هست .

amin_rezaee
دوشنبه 20 تیر 1390, 19:09 عصر
با سلام و خشته نباشید . ممنون از کامپوننت خوبتنون اما »»
کامپوننت شما رو به پروژه اضافه کردم ولی با این اررور مواجه شدم :



Could not load file or assembly 'ExtensionDate.DLL' or one of its dependencies. Invalid access to memory location.
(Exception from HRESULT: 0x800703E6)


** پروژه روی دات نت 4 هست .

منم همین مشکلو دارم.اگه کسی میدونه واسه چیه لطفا بگه.

elmira_63
سه شنبه 21 تیر 1390, 09:20 صبح
سلام
چرا این کد کار نمیکنه؟

DateTime SignupDate = DateTime.Parse("2010/07/22");
txtnew.Text = SignupDate.ToFullShamsiDate();

یعنی چرا با تاربخ 1389/04/31 مشکل داره؟
فکرکنم مشکل از خود convertor درون .net باشه !
لطفا اگه کسی می دونه چطوری می شه این مشکل رو حل کرد بگه!

منم همین مشکل رو با 31 ام هر ماه دارم !!!!!!!!!؟؟؟؟؟
کسی راه حلی نداره ؟؟؟؟؟؟؟؟

samtemehr
سه شنبه 15 فروردین 1391, 01:57 صبح
Error 3 Could not load file or assembly 'ExtensionDate.DLL' or one of its dependencies. Invalid access to memory location. (Exception from HRESULT: 0x800703E6)

nooshzad_parto
چهارشنبه 10 خرداد 1391, 00:18 صبح
این dll ربطی به ورژن .net داره؟؟؟
موقع build کردن این error می دهد :

Error 2 Could not load file or assembly 'ExtensionDate.DLL' or one of its dependencies. Invalid access to memory location. (Exception from HRESULT: 0x800703E6)

لطفا راهنمایی فرمایید (از دات نت 4 استفاده می کنم)

MAJIDVADOOSTAN
سه شنبه 12 دی 1391, 09:37 صبح
منم همین مشکل رو با 31 ام هر ماه دارم !!!!!!!!!؟؟؟؟؟
کسی راه حلی نداره ؟؟؟؟؟؟؟؟

دوستان كسي نميدونه چطور بايد مشكل 31 ماه هاي 2و 4 و 6 رو حل كرد برنامه براي 31 هاي 1 و 3 و 5 مشكل نداره...... خدا خيرتون بده لطفا جواب بدين يا از طراح dll خواهش دارم كه فايلشو اصلاح كنه
منتظر هستم دوستان

Mousavmousab
چهارشنبه 11 بهمن 1391, 20:23 عصر
سلام دوستان:
جدیدا یک کامپوننتی تهیه کردم که یک سری خصوصیات به کلاس DateTime اضافه می کنه و دیگه نیازی به نوشتن کد و یا استفاده از کامپوننت های مختلف و افزودن NameSpace و ... نداره.
تنها کاری که باید بکنید اینه که اونو توی پوشه Bin پروژه تون کپی کنید تا به راحتی از مزایای اون استفاده کنید.
ویژگیهای کامپوننت:
نام: ExtensionDate
تعداد متدها: فعلا 9 متد
خصوصیات کامپوننت:
متد DayCount: بدست آوردن تعداد روزهای ماه مورد نظر(برای مثال ماه 2 میلادی 28 روز را برگشت میدهد)
متد ToMiladiDate: تبدیل تاریخی شمسی به تاریخ میلادی (دارای دو OverLoad میباشد یکی با پارامتر DateTime و دیگری با پارامتر String)
متد PersianDayName: نام فارسی روز را در تاریخ مورد نظر برگشت میدهد(مثلا در تاریخ 1388/07/16 روز پنجشنبه را برگشت میدهد)
متد PersianMonthName: نام فارسی ماه را در تاریخ مورد نظر برگشت میدهد(مثلا در تاریخ 1388/07/16 مهر را برگشت میدهد)
متد ToShortShamsiDate: تبدیل تاریخ میلادی به تاریخ شمسی کوتاه(مثلا 1388/07/16)
متد ToLongShamsiDate: تبدیل تاریخ میلادی به تاریخ شمسی بلند(مثلا 16 مهر 1388)
متد ToFullShamsiDate: تبدیل تاریخ میلادی به تاریخ شمسی کامل(مثلا پنجشنبه 16 مهر 1388)
متد GetStartDate: تاریخ شروع میلادی تاریخ شمسی مورد نظر را برگشت میدهد(مثلا برای تاریخ 1388/07/16 تاریخ میلادی 2009/10/08 را برگشت میدهد) مخصوص جستجو و فیلتر کردن داده ها در دیتابیس.
متد GetEndDate: تاریخ پایان میلادی تاریخ شمسی مورد نظر را برگشت میدهد(مثلا برای تاریخ 1388/07/16 تاریخ میلادی 2009/10/31 را برگشت میدهد) مخصوص جستجو و فیلتر کردن داده ها در دیتابیس.

همانطور که گفتم تنها کاری که باید بکنید اضافه کردن این کامپوننت به پوشه Bin پروژه تون هست و کار دیگه ای نیاز نیست انجام بدین.
نحوه فراخونی هم اینطوری هست. برای مثال جهت بدست آوردن تاریخ شمسی امروز بصورت زیر عمل میکنیم:


DateTime.Today.ToFullShamsiDate(); //Return پنجشنبه 16 مهر 1388
DateTime.Today.PersianMonthName(); //Return مهر

DateTime SignupDate = DateTime.Parse("2009/07/10");
SignupDate.ToFullShamsiDate(); //
دوستان عزیز در مورد کامپوننت نظر بدین و متدهای مورد نیازتون رو بگید تا بهش اضافه کنم.
ضمنا در صورتیکه با مشکل یا باگی در استفاده از اون مواجه شدین حتما مطرح کنید.(انتقاد سازنده رو ایمیل کنید یا پیغام خصوصی بذارید )
موفق باشید

دوست من شما چطوری از این DLL استفاده کردین ؟ من هم Add Reference کردم ولی ارور میده هم توی وب و هم توی ویندوز ارورشم برای شما می زارم.
در ضمن نحوه استفاده از DLL ها همه مثل همه دیگه ،یعنی باید حتماٌ ADD Reference کنی و بعدش هم Using DLLName بعدش هم مثل کلاس دات نت استفاده کنی. ولی DLL شما عجیبه می دونی چرا ؟ چون ADD میشه ولی Using نمیشه اصلاٌ توی Using شناخته نمیشه که استفاده بشه ، در صورتی که به طور عجیب دات نت اینو میشناسه ولی Error می گیره
دات نت می گه Assembly مشکل داره.

اینم تصاویرش :

99308


99309

جالب تر اینه که زمان load شدن فرم از جای دیگه که توی کلاس Program.cs دات نت است ارور می گیره. و پروژه روی دات نت 4 هست.