PDA

نسخه کامل مشاهده نسخه کامل : تبديل بين تواريخ ميلادي و شمسي و قمري



بهرام_62
23-11-2008, 12:43
سلام
من مي خواستم تاريخ ميلادي يا شمسي رو به قمري تبديل كنم و بالعكس
تبديل تاريخ ميلادي به شمسي و بالعكسشو با شمسي . دي ال ال به راحتي انجام مي دم
اگر يك چيزي مثل همون براي قمري هم باشه ديگه خيلي توپ ميشه:31:

بهرام_62
01-12-2008, 00:49
هیچکس نبود

_H2_
01-12-2008, 01:48
سلام
در خصوص تقویم شمسی باید بیان کنم که متاسفانه اکثر کدهایی که میبینید مشکل دارند و صحیح نیستند و یا کلاً کبیسه ها را در نظر نگرفته اند یا کبیسه های 5 ساله با وقوع حدود 33 سال یکبار را درنظر نگرفته اند.
(البته همه نویسندگانشان هم فکر میکنند کاملترین الگوریتم را نوشته اند!)

در خصوص تقویم قمری هم باید بدانید که به علت ذات خاص این تقویم، هیچگاه به صورت کامل و بیشک و تریدید نمیتوانت گفت یک روز مشخص چندم ماه است 0مسئله عید فطر هر سال را که یادتان می آید؟)
ولی میتوان با اختلاف اندک فرمولی اش کرد.
(پس دنبال چیز مطلق و خالص و بی عیب نباشید.!)


اگر از vb9 استفاده کنید که متاسفانه بعید میدانم اینکار را انجام دهید الگوریتم 11 تقویم مختلف جهانی به صورت آماده در دسترس شما است!

مثلاً


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

کلاسس Calendar انواع متدها و قابلیت های خاص و کامل یک تقویم را شامل میشود.
- سال کبیسه است یا نه؟
- ماه کبیسه است یا نه؟
- تعداد ماه ها در سال مشخص
- تعداد روزها در سال و ماه مشخص
- تعداد روزها در سال مشخص
- روز هفته
- روز سال
- جمع و تفریق مقادیر تاریخی
و ...


لیست تقویم های موجود و در دسترس در VB9
EastAsianLunisolarCalendar
GregorianCalendar (تقویم استاندارد میلادی)
HebrewCalendar
HijriCalendar (تقویم هجری قمری)
JapaneseCalendar
JulianCalendar
KoreanCalendar
PersianCalendar (تقویم هجری شمسی)
TaiwanCalendar
ThaiBuddhistCalendar
UmAlQuraCalendar

به راحتی امکان تبدیل به یکدیگر هم وجود دارد
(
البته کلاسس CultureInfo هم وجود دارد که شامل اطلاعات فرهنگی کلیه کشورهای دنیا است!
فرمتهای عددی ... جداکننده اعشای ...
واحد پول ... نماد پول ....
نام ماهای سال ... فرمت استاندارد تاریخ ...
مقایسه رشته های String تحت فرهنگ مورد نظر ...
و...
)

موفق باشید.

بهرام_62
01-12-2008, 02:12
برای vb6 چه؟
ضمنا من برای شمسی از shamsi.dll استفاده می کنم و به نظرم واقعا کامله

_H2_
01-12-2008, 23:42
سلام

ضمنا من برای شمسی از shamsi.dll استفاده می کنم و به نظرم واقعا کامله
برای من فرقی ندارد ولی شما برای اطمینان خودتان میتوانید چند تاریخ خاص را توسط این dll تبدیل کنید؟

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

بهرام_62
03-12-2008, 00:52
ایناها رو تو میلادی بنویسم؟

_H2_
04-12-2008, 01:16
سلام

ایناها رو تو میلادی بنویسم؟
اینها تاریخ میلادی هستند که شما میتوانید معادل شمسی آن را با dll تان به دست آوردید که اگر صحیح باشد حداقل 50 درصد مشکلتان حل میشود و خیالتان راحت میشوید که میتوانید روی هجری شمسی آن اعتماد کنید.
فوقش میماند مشکل قمری

بهرام_62
04-12-2008, 18:36
خوب از کجا بفهمم درست گفته یا نه؟
حداقل درستش رو بنویس که من مقایسه کنم[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]

_H2_
05-12-2008, 03:05
سلام
من شخصا دو روش محاسباتی با نام "تقویم جلالی" دیده ام.
یکی در کتابها که کبیسه های 5 ساله پیچیده دارد. (حدود 300 سال 500 سال و...)
یکی هم در اینترنت که بسیار معروف است و کبیسه های پنج ساله منظمی را ترسیم میکند (33 ساله)

ولی در سالهایی که در پیش داریم تا اوایل 140X (متاسفانه x را فراموش کرده ام!) این دو روش دقیقاً یک جواب میدهند و منطبق هستند.

مجدداً تاکید میکنم که بیشتر الگوریتم های برنامه نویسی که در اینترنت پیدا میکنید غلط هستند و با هیچ کدام از دو روش فوق منطبق نیستند.
مخصوصاً و مخصوصاً و مخصوصاً آنهایی که به کرات If و 20 و 21 دارند، اینها صد در صد غلط هستند و فوقش در یک بازه 4 یا حداکثر 33 ساله صحیح کار میکنند.


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

بهرام_62
05-12-2008, 14:09
بعضیاش درسته ولی بعضیاش نه
حالا چند تا سوال دارم
1.از کجا بفهمم که اینی که شما میگی درسته؟
2.این تاریخی که در آوردی با چه فرمولی بوده
3.در کل من باید چه غلطی بکنم[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]

_H2_
06-12-2008, 01:14
سلام

بعضیاش درسته ولی بعضیاش نه
متاسفانه وقتی طرف یک ساعته تصمیم به نوشتم الگوریتم میگیرد و تقویم امسال و فوقش تقویم پارسال را جلویش میگذارد و الگوریتم را مینویسد بهتر از این نمیشود.!



1.از کجا بفهمم که اینی که شما میگی درسته؟
2.این تاریخی که در آوردی با چه فرمولی بوده
من سالها قبلاً خودم شخصاً در مورد روش تحقیق کردم و به همان دو روش متفاوت رسیدم.
اعداد فوق صد درصد مطابق الگوریتم 33 ساله است و توسط Microsoft Framework2.0 - PersianCalendar محاسبه شده اند.
اگر بخواهیم روش دوم را هم معیار قرار دهیم، فقط و فقط تاریخ دوم لیست فوق تفاوت تبدیل دارد و مابقی تاریخ های لیست فوق طبق هر دو روش و الگوریتم به همان جوابهای بالایی میرسند.

پس مطلقاً هیچ بهانه ای برای جوابهای ناصحیح در بقیه تاریخ های لیست قابل قبول نیست.



3.در کل من باید چه ... بکنم
1) امکان استفاده از کلاسسهای دات نت (VB9) در VB6 وجود دارد!!! ولی باید در مقصد در زمان انتقال برنامه Framework2 نصب باشد و یا نصب شود. (نتیجتاً خواهید توانسط از آن 11 تقویم استفاده کنید.)

2) شاید و شاید و شاید اگر بتوانید صبر کنید و من وقت کافی پیدا کنم بتوانم یک نمونه ساده در ++VC برایتان درست کنم که در vb6 قابل استفاده باشد.

بهرام_62
06-12-2008, 13:42
2) شاید و شاید و شاید اگر بتوانید صبر کنید و من وقت کافی پیدا کنم بتوانم یک نمونه ساده در ++vc برایتان درست کنم که در vb6 قابل استفاده باشد.
حتما و حتما و حتما اين بهترين روشه چون از بقيه حرفات هيچي نفهميدم:31:
و حتما و حتما و حتما صبر مي كنم و حتما و حتما و حتما شما وقت مي كني و حتما و حتما و حتما برام يك dll مي سازي و به جامعه برنامه نويسان خدمت بزرگ و بزرگ و بزرگي مي كني:27:
ولي جون من بنويس:31:
منتظرم:10:

_H2_
06-12-2008, 23:25
سلام، انشا ا.. چشم!

_H2_
22-12-2008, 01:21
سلام
من یک نمونه dll با VC++2008 و در دو نسخه 32 و 64 بیتی حاضر کردم.
فعلاً میتوانید نمونه وفق را به همراه توضیحات کامل از لینک زیر دانلود کنید.

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید


البته اگر وقت کنم، توضیحات و فایل را کاملتر خواهم کرد.
در طی روند برنامه نویسی چندین بار جواب بخش های مختلف را با نمونه تقویم شمسی خود مایکروسافت که در Framework در دسترس است، چک کردم و تناقضی پیدا نکردم (از 1-1-1 تا 30-12-9377)
ولی وقت نشد تست نهایی ای روی فایل کامپایل شده نهایی انجام دهم.

سعی میکنم آخرین تستها و تاییدیه ها را انجام دهم و نسخه نهایی را هرچه زودتر برایتان بگذارم.
شاید نسخه نهایی را در تاپیک مجزایی مطرح کنم تا راحت تر قابل مشاهده و پیگیری برای دوستان علاقه مند باشد و مشکلشان را حل کند.

نسخه جاری بر اساس همان الگوریتم 33 ساله (که مایکروسافت هم استفاده کرده) به دقت پی ریزی و طراحی شده.

موفق باشید.

بهرام_62
22-12-2008, 02:52
سلام دانلود کردم الان خیلی خوابم میاد تستش نکردم
منتظر نسخه نهایی و راهنما هستیم
ضمن اینکه برای این وقتی که گذاشتی بسیار متشکرم[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]

بهرام_62
04-01-2009, 14:10
سلام
من همچنان منتظرم
رو حرفت حساب كردم

_H2_
05-01-2009, 00:07
سلام

من همچنان منتظرم
رو حرفت حساب كردم

شرمنده!
باید یک پروژه را تحویل میدادم (زمان تحویلش رسیده بود) که کلی تاپیک در این سایتها و سایت دیگری را نتوانستم جواب دهم.
این نسخه فعلی که گذاشتم کامل است و در طی کدنویسی بارها تستش کرده ام، فقط دلم میخواهد برای اطمینان صددرصدی کدی بنویسم که به عنوان نهایی جواب تمام توابع را در کل محدوده تاریخ قابل قبول (برای همه روزها) با جواب تقویم دات نت که محصول خود مایکروسافت است چک کند و مطمئن شوم دیگر هیچ ایرادی ندارد.
وگرنه کد همین است...

چشم هر چه زودتر این چک نهایی را انجام میدهم.
حالا چی شد، این را تست کردید؟ اصلاً توانستید در vb6 استفاده کنید؟ مشکلی که پیش نیامد؟

بهرام_62
05-01-2009, 01:09
ببین
این رو دانلود کردم راستش سر در نیاوردم
چند تا فایل بود
اگر لطف کنی مثل شمسی دی ال ال فقط یک دی ال ال برام بسازی و مثل همون شمسی دی ال ال آموزش هم درست کنی خیلی حال دادی[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]

_H2_
05-01-2009, 01:24
سلام

این رو دانلود کردم راستش سر در نیاوردم
چند تا فایل بود
اگر لطف کنی مثل شمسی دی ال ال فقط یک دی ال ال برام بسازی و مثل همون شمسی دی ال ال آموزش هم درست کنی خیلی حال دادی
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!: 18:

مگر این چندتا dll است؟ اموزش همراهش نبود؟
شما فایل help.htm را اجرا کردید؟ (باید کارد زرد بالای IE را OK کنید)
در همان اول اگر روی Win32 کلیک کنید، dll را تحویلتان میدهد و اگر روی "کمک برای VB6" کلیک کنید، توضیحات تکمیلی را نشانتان میدهد.
فکر کنم اصلاً help.html را ندیده اید و مستقیماً رفته ای سراغ پوشه Files :31:

asire-dell
26-06-2011, 15:36
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
باید Imports System.Globalization رو هم بالای صفحه کپی کنید.
بعد توی page_load دستور PersianDate() رو بنویسی.یعنی اینکه زیربرنامه رو فراخوانی میکنی با این کار.

من برای پروژه ام از این کد استفاده کردم.جواب میده.با این کد روز و زمان و تاریخ رو بهت نشون میده. مثلا :شنبه ساعت 11:00 تاریخ 1390/04/05:20:
میدونم که تاپیک برای خیلی وقت پیش بوده ولی جواب درستی به این سوال داده نشده بود و چون میدونم بچه های vb.net به این کد نیاز دارن ، دوست داشتم در اختیارشون بزارم و یه تاپیک جدید درست نکنم.