R&D
مرکز تحقیق و توسعه جعبه ابزار

• PersianDate | Shamsi Date Solution


منتشر شده در روز Friday, September 10th, 2010 ساعت 1:54 pm در بخش Adobe Flash Platform, معرفی

تخصیصی :: کدنویسان as 3

نسخه سوم کلاس persianDate تحت ActionScript 3 منتشر شد ؛

سعی شده در این کلاس هر آنچه که برنامه نویسان as هنگام کار با تاریخ های شمسی به دان نیاز دارند گنجانده شود . نسخه های قبلی دارای نواقصی بود و گاها هنگام محاصبه تاریخ در بعضی موارد دچار مشکل میشد .. در نسخه شماره دو سعی شد متودی جدا برای محاصبه روز هفته یک تاریخ خاص قرار داده شود که خود با مشکلاتی همراه بود و همیشه درست کار نمیکرد ..

حالا با منتشر شدن نسخه سوم ؛ علاوه بر رفع نمودن مشکلات نسخه های قبلی ، متوید جدید به کلاس اضاه شد؛ تحت عنوان disMetter این متود توانایی محاسبه روز های میان دو تاریخ شمسی را دارد .

به عنوان مثال اگر تعداد روز های میان تاریخ ۲۸ ام اسفند ۸۷ و امروز را بخواهیم :

به ما عدد ۴ رو بر میگردونه ..

یعنی با توجه به ۳۰ روزه بودن اسفند ۸۷ .

توجه : مبنای فاصله خود روز مبدا تا روز مقصد است .

همچنین متودی برای محاسبه کبیسه بودن یا نبودن سال نیز در نظر گرفته شده {مبنا : سال کامل خورشیدی }

کلاس دارای یک constructor از نو Object (نه از نوع خود کلاس) است که دارای پارامتر های year,month,date,day است که به ترتیب سال ؛ ماه ؛ روز و روز هفته تاریخی( جلالی ) است که کلاس رو اجرا کردید ..

مثال هایی از نحوه اجرا :

import date;
var persianDate:date = new date()
trace(persianDate.today.fullY);//1388,1,2,0 یکشنبه
trace(persianDate.today.month);//1
// and so on ..

مثال کلی :

import date;var jalaliWeek:Array=new Array(
”یکشنبه” , “دوشنبه” , “سه شنبه” , “چهارشنبه” , “پنجشنبه” , “جمعه” , “شنبه”);
var jalaliMonths:Array=new Array(
”فروردین” , “اردیبهشت” , “خرداد” , “تیر” , “اًمرداد”
, “شهریور” , “مهر” , “آبان” , “آذر” , “دی” , “بهمن” , “اسفند”);
trace(persianDate.GregorianToJalali(2009 , 3 , 21));
//1388 , 1 , 1 , 6var today:Array = persianDate.GregorianToJalali(2009 , 3 , 21);
trace(today[0]+” “+jalaliMonths[today[1]-1]+” “+today[2]+” “+jalaliWeek[today[3]])
//1388 فروردین ۱ شنبه

مثال تشخیص کبیسه بودن یا نبودن یک سال

(سال خورشیدی)

import date;
var persianDate:date = new date();
trace(persianDate.isLeapYear(1388));//false
trace(persianDate.isLeapYear(1387));//true

مثالی از محاسبه فاصله بین ۲ تاریخ

import date;
var persianDate:date = new date();
var ar1:Array = new Array(1387,1,1);
var ar2:Array = new Array(1388,1,1);
trace(persianDate.disMetter(ar1,ar2));//366
var ar3:Array = new Array(1385,1,1);
var ar4:Array = new Array(1386,1,1);
trace(persianDate.disMetter(ar3,ar4));//365