تابع ConvertDate وظیفه تبدیل تاریخ را برعهده دارد.
این تابع دو پارامتر میگیرد:
مقدار بازگشتی تابع هم از قوانین خطای عمومی فایل تبعیت میکند.
این تابع کوچکترین تاریخ ساپورت شده در dll را به شمسی/میلادی باز میگرداند.
این تابع دو پارامتر میگیرد:
خروجی پارامتر اول این تابع به ازای IsInputGregorian=0 همواره تاریخ ثابت 1-1-1 خواهد بود.
خروجی پارامتر اول این تابع به ازای IsInputGregorian=1 همواره تاریخ ثابت 21-3-622 خواهد بود.
این تابع بزرگترین تاریخ ساپورت شده در dll را به شمسی/میلادی باز میگرداند.
این تابع دو پارامتر میگیرد:
خروجی پارامتر اول این تابع به ازای IsInputGregorian=0 همواره تاریخ ثابت 30-12-9377 خواهد بود.
خروجی پارامتر اول این تابع به ازای IsInputGregorian=1 همواره تاریخ ثابت 20-3-9999 خواهد بود.
این تابع یک تاریخ شمسی/میلادی را میگیرد و با حساب روزهای ماه و سالهای کبیسه و محدوده مجاز مورد پذیرش، تأیین میکند که اعداد تاریخ داده شده صحیح و مجاز هستند یا خیر.
این تابع دو پارامتر میگیرد:
خروجی این تابع برای تاریخ های مجاز عدد یک و برای تاریخ های اشتباه و غلط عدد صفر خواهد بود.
این تابع یک مقدار عددی تعداد روزهای مثبت/منفی را به تاریخ شمسی/میلادی ورودی بر اساس موازین تقویم شمسی اضافه میکند.
این تابع سه پارامتر میگیرد:
توجه: در صورتی که ورودی تاریخ شمسی باشد خروجی در پارامتر اول هم شمسی خواهد بود و در صورتی که ورودی میلادی باشد خروجی در پارامتر اول هم میلادی خواهد بود.
مقدار بازگشتی تابع هم از قوانین خطای عمومی فایل تبعیت میکند.
این تابع یک مقدار عددی تعداد ماههای شمسی مثبت/منفی را به تاریخ شمسی/میلادی ورودی بر اساس موازین تقویم شمسی اضافه میکند.
این تابع سه پارامتر میگیرد:
توجه: در صورتی که ورودی تاریخ شمسی باشد خروجی در پارامتر اول هم شمسی خواهد بود و در صورتی که ورودی میلادی باشد خروجی در پارامتر اول هم میلادی خواهد بود.
مقدار بازگشتی تابع هم از قوانین خطای عمومی فایل تبعیت میکند.
این تابع یک مقدار عددی تعداد سالهای شمسی مثبت/منفی را به تاریخ شمسی/میلادی ورودی بر اساس موازین تقویم شمسی اضافه میکند.
این تابع سه پارامتر میگیرد:
توجه: در صورتی که ورودی تاریخ شمسی باشد خروجی در پارامتر اول هم شمسی خواهد بود و در صورتی که ورودی میلادی باشد خروجی در پارامتر اول هم میلادی خواهد بود.
مقدار بازگشتی تابع هم از قوانین خطای عمومی فایل تبعیت میکند.
این تابع مشخص میکند سال شمسی داده شده، کبیسه است یا خیر
این تابع یک پارامتر میگیرد:
خروجی این تابع برای سال شمسی کبیسه عدد یک و برای سالهای شمسی عادی عدد صفر خواهد بود.
علاوه بر مقادیر فوق، مقادیر منفی هم از قوانین خطای عمومی فایل تبعیت میکند.
این تابع یک سال و ماه را شمسی را میگیرد و تعداد روزهای آن ماه را در با درنظر گرفتن سال کبیسه باز میگرداند.
این تابع دو پارامتر میگیرد:
- Int32 Year سال مورد تست.
- Int32 Month سال مورد تست.
مقادیر بازگشتی منفی هم از قوانین خطای عمومی فایل تبعیت میکند.
این تابع تعداد روزهای گذشته از اول سال شمسی (اول فروردین) را در تاریخ مشخص شمسی/میلادی باز میگرداند.
این تابع یک پارامتر میگیرد:
مقادیر بازگشتی منفی هم از قوانین خطای عمومی فایل تبعیت میکند.
این تابع تعداد روزهای سال مشخص شمسی را باز میگرداند. در واقع اگر سال کبیسه باشد، این مقدار 366 و در غیر این صورت 365 خواهد بود.
این تابع دو پارامتر میگیرد:
مقادیر بازگشتی منفی هم از قوانین خطای عمومی فایل تبعیت میکند.
این تابع روز هفته را برای یک تاریخ خاص شمسی/میلادی باز میگرداند.
این تابع دو پارامتر میگیرد:
مقادیر بازگشتی منفی هم از قوانین خطای عمومی فایل تبعیت میکند.
یک ساختار 12 بایتی شامل سه عدد 4 بایتی است که مشخص کننده مقادیر ورودی سال و ماه و روز میباشد.
| Year |
Int32 |
|
| Month |
Int32 |
|
| Day |
Int32 |
|
توجه: برای نمونه کامپایل ویندوز 64 بیتی هم، همچنان ساختار فوق شامل 3 متغییر 4 بایتی است و ابعاد تغییری نمیکند.
یک ساختار 12 بایتی شامل سه عدد 4 بایتی است که مشخص کننده مقادیر ورودی و خروجی سال و ماه و روز میباشد.
| Year |
Int32 |
|
| Month |
Int32 |
|
| Day |
Int32 |
|
یعنی خروجی محاسبات توابع که یک تاریخ باشد، هم در ساختار فوق الذکر پس داده خواهد شد.
توجه: برای نمونه کامپایل ویندوز 64 بیتی هم، همچنان ساختار فوق شامل 3 متغییر 4 بایتی است و ابعاد تغییری نمیکند.
مقدار بازگشتی توابع یک عدد است که اگر منفی باشد کد خطا و دلیل عدم انجام عملیات است، در غیر این صورت (مقادیر صفر و مثبت) به معنی موفقیت است و اگر تابع عددی را باید بازمیگردانده، این مقدار بازگشتی مشخص کننده ان عدد است.
کدهای خطا
- RESULT_ERR = -01 = 0xffffffff
خطای نامشخص
- RESULT_ERR_RETURN = -02 = 0xfffffffe
خطا در مقدار محاسبه شده نهایی که خارج از محدوده و نامعتبر است.
- RESULT_ERR_PARAM1 = -11 = 0xfffffff5
پارامتر ورودی اول خارج از محدوده مجاز است و نامعتبر است.
- RESULT_ERR_PARAM2 = -12 = 0xfffffff4
پارامتر ورودی دوم خارج از محدوده مجاز است و نامعتبر است.
- RESULT_ERR_PARAM3 = -13 = 0xfffffff3
پارامتر ورودی سوم خارج از محدوده مجاز است و نامعتبر است.
مکانیزم کار به این صورت است که اول مقادیر ورودی بررسی و اعتبار سنجی میشوند تا مجاز و در محدوده مشخص باشند، در صورت خارج از محدوده بودن خطای مورد نظر گزارش و از ادامه کار تابع جلوگیری خواهد شد.
پس از اتمام عملیات تابع هم مجدداً مقادیر خروجی تولید شده بررسی میشوند و در صورت خارج از محدوده مجاز بودن، خطا گزارش و از ادامه کار جلوگیری خواهد شد.
پس از طی مراحل فوق و حصول جواب صحیح و در محدوده مجاز، مقادیر به فراخواننده گزارش خواهند شد.
مثلاً تابع AddYears میتواند ورودی هایی صحیح بگیرد ولی مقدار اضافه شده به سال انقدر زیاد باشد که نتیجه نهایی از سال 9377 بیشتر شود، که در این صورت خطای عمومی RESULT_ERR_RETURN گزارش خواهد شد.
لازم به ذکر است که اگر تابع با خطا مواجه شود، مقادیر ورودی احتمالی که باید حاوی نتیجه عملکرد تابع میشدند بدون هیچ تغییری و برابر با مقادیر اولیه باقی خواهند ماند و تابع به اتمام میرسد.
نتیجتاً مقادیر خروجی همواره ایمن خواهند بود.
نسخه 32 بیتی dll در نسخه های 32 بیتی ویندوز با پردازنده های منطبق با x86 قابل استفاده است.
این نسخه از این لینک قابل دریافت است.
نسخه 64 بیتی dll در نسخه های 64 بیتی ویندوز با پردازنده های منطبق با x64 قابل استفاده است.
این نسخه از این لینک قابل دریافت است.
این بخش در دست تایپ و آماده سازی میباشد، و هنوز در دسترس نمیباشد.
این بخش در دست تایپ و آماده سازی میباشد، و هنوز در دسترس نمیباشد.
این بخش در دست تایپ و آماده سازی میباشد، و هنوز در دسترس نمیباشد.
برای استفاده ازبرای استفاده از dll فوق در VB6 دو فایل کمکی ارائه شده است. که استفاده از یکی از آنها کافی است و فایل مربوطه باید با فرمان Project->Add File (Ctrl+D) به پروژه اضافه شود.
هر دو فایل از این لینک قابل دریافت هستند.
dll هم در زمان طراحی بهتر است در System32 کپی شود ولی برای نمونه نهایی و exe برنامه نهایی، کنار exe بودن کافی است.
- فایل اول با نام PersianCalendar.bas یک ماژول شامل تعریف های اصلی API ها میباشد.
- فایل دوم هم کلاس با نام PrDate.cls میباشد که کاملتر و ساده تر قابل استفاده است.
به عنوان نمونه برای استفاده از کلاسس PrDate میتوان به طریق زیر عمل کرد.
'تعریف متغییر های تاریخی شمسی و میلادی
Dim sysd As Date
Dim prd As New PrDate
'تبدیل از شمسی به میلادی
prd.Year = 1387
prd.Month = 9
prd.Day = 29
gd = prd.SystemDate
'تبدیل از میلادی به شمسی
gd = #1/1/2008#
'یا
gd = DateSerial(2008, 1, 1)
prd.SystemDate = gd
' = prd.Year
' = prd.Month
' = prd.Day
'مشخص میکند تاریخ در محدوده مجاز قرار دارد یا خیر
'prd.IsValid
'سال کبیسه را مشخص میکند
'prd.IsLeapYear
'تعداد روزهای گذشته از اول سال را باز میگرداند
'prd.DayOfYear
'تعداد روزهای ماه را باز میگرداند
'prd.DaysInMonth
'تعداد روزهای سال را باز میگرداند
'prd.DaysInYear
'روز هفته را باز میگرداند
'prd.GetDayOfWeek
'مقداری جاری را با تعداد مشخصی منفی/مثبت سال شمسی جمع میکند
prd.AddYears(1)
'مقداری جاری را با تعداد مشخصی منفی/مثبت ماه شمسی جمع میکند
prd.AddMonths(1)
'مقداری جاری را با تعداد مشخصی منفی/مثبت روز جمع میکند
prd.AddDays(1)
در پایان با توجه به اتمام پشتیبانی فنی مایکروسافت از VB6 و سیستم عامل همدوره اش Win98 به تمام دوستان عزیز VB6 کار قویاً پیشنهاد میکنم، هر چه زودتر به سمت استفاده از نسخه های جدیدتر و مطابق با تکنولوزی روزی مثل VB9 یا همان VB2008 مهاجرت کنند.
VB9 مطابق با نیاز و هماهنگ با فن آوریهای روز 2008 طراحی شده و پاسخ گوی کلیه نیازهای جاری خواهد بود.
ضمن داشتن بیش از 70 کنترلر آماده در Toolbar و هزاران کلاسس ماژول آماده در فضای Microsoft Framework.Net، تطابق کاملی با یونیکید و انواع فرهنگ ها دارد و کاملاً از OOP پشتیبانی میکند و امکان کار در وب و ویندوز و موبایل را دارد و میتوانید به برنامه نویس خود امکان استفاده از تکنولوژی های جدیدی مثل ارتباطات پیشرفته ای شبکه ای و اینترنتی و XML و WPF و WCF و LINQ و WinService و WebService و MVC و ... را بدهد و محصول نهایی با کمترین تداخل روی انواع سخت افزارهای 32 و 64 بیتی قابل اجرا خواهد بود.
دانلود مستقیم، قابل ادامه و رایگان Microsoft Visual Studio 2010 Express Edition-694MB از سایت مایکروسافت
دانلود مستقیم، قابل ادامه و رایگان Microsoft MSDN 2008 Express Editions-361MB از سایت مایکروسافت
دانلود مستقیم، قابل ادامه و رایگان Microsoft Visual Studio 2008 Express Editions with SP1-749MB از سایت مایکروسافت
|