View Full Version : تبدبل تاریخ
dokhtareironi
سه شنبه 07 آذر 1385, 20:53 عصر
چه جوری میشه تاریخ میلادی رو به شمسی تبدیل کرد؟
واگه لطفا کد برنامه ی مرتب سازی ادغامی و qick sort رو دارید میشه برام بزارید
h_c2005
چهارشنبه 09 خرداد 1386, 18:32 عصر
سلام
واسه مرتب سازی این سایت رو ببین .
http://www.aachp.ir/post.aspx?no=73
saeid5977
دوشنبه 14 خرداد 1386, 13:13 عصر
سلام
یه سرچ تو فروم بزنید کلی برنامه در مورد تبدیل تاریخ هست. تا اونجا که من میدونم یه تاپیک هم برای جمع آوری این کدها ایجاد شده!
http://barnamenevis.org/forum/showthread.php?t=69042&highlight=%D4%E3%D3%26%231740%3B
peyman1987
سه شنبه 15 خرداد 1386, 08:16 صبح
دوستان به تاریخ دو پست اول هم توجه کنین.
ace.coder
سه شنبه 13 اسفند 1387, 10:06 صبح
جواب سوال :
typedef struct _MILADIDATE
{
int iYear;
int iMonth;
int iDay;
}MILADIDATE;
MILADIDATE ShamsiToMiladi(int ShamsiMonth,int ShamsiDay,int ShamsiYear)
{
MILADIDATE miladiDate;
int marchDayDiff, remainDay;
int dayCount, miladiYear, i;
// this buffer has day count of Miladi month from April to January for a none year.
int miladiMonth[12] = {30,31,30,31,31,30,31,30,31,31,28,31};
miladiYear = ShamsiYear + 621;
//Detemining the Farvardin the First
if((MiladiIsLeap(miladiYear))
{
//this is a Miladi leap year so Shamsi is leap too so the 1st of Farvardin is March 20 (3/20)
marchDayDiff = 12;
}
else
{
//this is not a Miladi leap year so Shamsi is not leap too so the 1st of Farvardin is March 21 (3/21)
marchDayDiff = 11;
}
// If next year is leap we will add one day to Feb.
if(MiladiIsLeap(miladiYear+1)))
{
miladiMonth[10] = miladiMonth[10] + 1; //Adding one day to Feb
}
//Calculate the day count for input shamsi date from 1st Farvadin
if((ShamsiMonth>=1)&&( ShamsiMonth<=6))
dayCount = ((ShamsiMonth-1) * 31) + ShamsiDay;
else
dayCount =(6 * 31) + ((ShamsiMonth - 7) * 30) + ShamsiDay;
//Finding the correspond miladi month and day
if (dayCount <= marchDayDiff) //So we are in 20(for leap year) or 21for none leap year) to 31 march
{
miladiDate.iDay = dayCount + (31 - marchDayDiff);
miladiDate.iMonth = 3;
miladiDate.iYear=miladiYear;
}
else
{
remainDay = dayCount - marchDayDiff;
i = 0; //starting from April
while ((remainDay > miladiMonth[i]))
{
remainDay = remainDay - miladiMonth[i];
i++;
}
miladiDate.iDay = remainDay;
if (i > 8) // We are in the next Miladi Year
{
miladiDate.iMonth = i - 8;
miladiDate.iYear = miladiYear + 1;
}
else
{
miladiDate.iMonth = i + 4;
miladiDate.iYear = miladiYear;
}
}
return miladiDate;
}
// the function check a miladiyear is leap or not.
BOOL MiladiIsLeap(int miladiYear)
{
if(((miladiYear % 100)!= 0 && (miladiYear % 4) == 0) || ((miladiYear % 100)== 0 && (miladiYear % 400) == 0))
return TRUE;
else
return FALSE;
}
منبع : http://radcom.ir/weblog/fatemeh/archive/2005/04/10/220.aspx
SamaPic
سه شنبه 13 اسفند 1387, 13:51 عصر
با سلام خدمت دوست عزيز.
يك مقدار آهسته تر .:متعجب:
اين ..... ... ..... ..... ....... ........... .... .. ...... .
خدانگهدار.
ace.coder
سه شنبه 13 اسفند 1387, 14:13 عصر
اگه من جای مدیرهای این سایت بودم هر کسی قوانین را رعایت نمی کرد بن می کردم!!!
به نظر من این انجمن روی کاربراش و آموزششون تلاشی نمیکنه!
اگه بیان بابت هر تخلف جریمه ای گذاشته شه! (سلب دسترسی) اون وقت یک مقداری این انجمن خوب میشه!!
Nima_NF
سه شنبه 13 اسفند 1387, 14:41 عصر
اگه من جای مدیرهای این سایت بودم هر کسی قوانین را رعایت نمی کرد بن می کردم!!!
به نظر من این انجمن روی کاربراش و آموزششون تلاشی نمیکنه!
اگه بیان بابت هر تخلف جریمه ای گذاشته شه! (سلب دسترسی) اون وقت یک مقداری این انجمن خوب میشه!!
همیشه قبل از ارسال یا اظهار نظری ابتدا نگاهی به تاریخ تاپیک بکنید " 07 آذر 1385"
قوانین و مدیریت در این سال ها تغییر کرده است...
اگر شما پاسخی به این تاپیک نمی دادید و من هم این تاپیک را می دیدم به خاطر محتویات بیهوده آن، فورا پاک می کردم.
اگر در جایی تخلفی می بینید از آیکن ! "آگاه کردن مدیریت از تخلف" استفاده کنید و مورد را گزارش کنید تا به آن رسیدگی شود.
جریمه و اخراج کردن و غیر همه وجود دارد، شما آن ها را نمی بینید. ضمنا اگر هر کسی یک جمله نامربوط می گفت ban می شد که دیگر همه باید اخراج شوند. مثل جملاتی که در ابتدای تاپیک گفتید. پس شما هم باید بیشتر رعایت کنید.
ace.coder
سه شنبه 13 اسفند 1387, 15:18 عصر
من از بن شدن نمیترسم!!!
اگه من خلافی کردم بن می شم! من انتقاد کردم!!! جرمی نکردم! پست سالم دادم! اعتراض هم کردم!
در هر صورت اگه من اشتباه کردم ببخشید!!!!!!!!
اگر بین 1000 نفر 950 نفر بن بشن! یعنی پست بیهوده دادن! پس بهتر که کاربران کم باشه! اما مفید باشه!
شما دنبال یوزر میگردی؟ یا آموزش؟؟؟ شما باید هدفتو مشخص کنی!
اگه که دنبال یوزر می گردی که منو بن کن و من هرچی گفتم با خودم بودم!
اگه دنبال آموزش و بهتر شدن سایت هستی! باید اون افرادی که به جز پر کردن Database است هیچ سود دیگه ندارن را بن کرد!!!!
ممنون!
SamaPic
سه شنبه 13 اسفند 1387, 20:53 عصر
با سلام خدمت دوست عزيز.
من منظور شما را متوجه نمي شوم.آيا ناراحت شده ايد يا نه؟
دوست من اگر گفته ي من شما را ناراحت كرده منظوري نداشتم.فقط از چنين پاسخي شوكه شده بودم .
نيما درست مي گويد.اين تاپيك مربوط به دو سال پيش است.
خدانگهدار.
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.