پیش از تبدیل، معتبر بودن تاریخ را بررسی کنید
یک مبدل تقویم زمانی نتیجهٔ مفیدی میدهد که ورودی آن واقعاً یک تاریخ معتبر باشد. وجود سه عدد در کادرهای روز، ماه و سال کافی نیست. برای نمونه، روز سیویکم در همهٔ ماهها وجود ندارد و سال کبیسه نیز میتواند تعداد روزهای آخر یک ماه را تغییر دهد.
کنترل طول ماه در تقویم شمسی
در تقویم هجری شمسی، شش ماه نخست ۳۱ روز دارند، ماههای هفتم تا یازدهم ۳۰ روزهاند و اسفند در سال عادی ۲۹ روز دارد. در سال کبیسه، یک روز به اسفند اضافه میشود. بنابراین ورودیای مانند «۳۱ بهمن» نباید صرفاً به خاطر عددیبودن اجزایش پذیرفته شود.
برای بررسی یک تاریخ کامل و دیدن معادل تقویمی آن، میتوان از صفحهٔ تبدیل تاریخ کمک گرفت. بهتر است پیش از استفاده از نتیجه، خطای تایپی در روز یا ماه، انتخاب تقویم مبدأ و کاملبودن سال را کنترل کنید؛ هیچ ابزار تبدیلی جای خواندن درست سند اولیه را نمیگیرد.
مراقب اصلاح خودکار نامرئی باشید
برخی کتابخانههای نرمافزاری، ورودی خارج از محدوده را به ماه بعد منتقل میکنند، به جای آنکه خطا بدهند. چنین رفتاری برای محاسبات داخلی ممکن است کاربرد داشته باشد، اما در یک فرم کاربری میتواند مشکلساز شود: کاربر تاریخی مینویسد و سامانه بیصدا تاریخ دیگری را ذخیره میکند.
یک رابط مناسب باید روشن بگوید کدام جزء نامعتبر است. پیام «تاریخ صحیح نیست» از پیام دقیق «این ماه روز سیویکم ندارد» کمتر به اصلاح ورودی کمک میکند. همچنین نباید روز و ماه صرفاً برای سازگارشدن با نتیجه جابهجا شوند.
فهرست آزمون برای فرمها
- پایان ماههای ۲۹، ۳۰ و ۳۱روزه؛
- آخرین روز سال عادی و سال کبیسه؛
- مقدار خالی یا بخشی از سال؛
- ارقام فارسی و لاتین در ورودی؛
- جداکنندههای متفاوت و فاصلهٔ اضافی.
هدف اعتبارسنجی، سختکردن کار کاربر نیست. این مرحله جلوی ثبت خطاهایی را میگیرد که ممکن است مدتها بعد، هنگام جستوجو، تطبیق سند یا محاسبهٔ فاصلهٔ زمانی آشکار شوند.