از دوستان کسی برای تبدیل تاریخ شمسی به میلادی الگوریتمی داره؟
اطلاعیه
Collapse
No announcement yet.
تبدیل تاریخ شمسی به میلادی
Collapse
X
-
پاسخ : تبدیل تاریخ شمسی به میلادی
یه تقویم بذار جلوت الگوریتمش به دستت می آید.
مثلا اول مرداد میشه بیست و دوم جولای یعنی 22/7 پس باید دو تا به ماه شمسی اضافه کنی تا ماه میلادی به دست بیاد. اما از دوازدهم مرداد دیگه باید سه تا ماه شمسی اضافه کنی تا ماه میلادی به دست بیاد.
توضیحش مشکله اما عملش خیلی ساده است. چون ماه های شمسی و میلادی نسبت به هم ثابت هستن و مثل ماه های قمری نیستن...عمر گران میگذرد خواهی نخواهی سعی بر آن کن نرود رو به تباهی
مطلب دل را طلب از سوی خدا کن زآنکه بود رحمت او لا یتناهی
-
پاسخ : تبدیل تاریخ شمسی به میلادی
متاسفانه با روشی که شما گفتین به خاطر سالهای کبیسه به یک فرمول مشخصی نمیرسیم سال 87 روز 22 جولای با 1 مرداد برخورد میکنه ولی تو سال 86 روز 23 جولای مصادف با 1 مرداد میشهچه دعایی کنمت بهترازاین ،که کنار پسر فاطمه هنگام اذان ، سحر جمعه ای پشت دیوار بقیع قامتت قد بکشد در دو رکعت به نمازی که نثار حرم و گنبد برپا شده ی حضرت زهرا بکنی ... انشاالله
دیدگاه
-
پاسخ : تبدیل تاریخ شمسی به میلادی
با سلام
پیادهآسازی این تبدیل با ANSI C در http://www.farsiweb.info/jalali/jalali.c
منبع: http://www.farsiweb.ir/wiki/Iranian_Calendarمن دوست دارم آزاد فکر کنم، نرمآافزارآ و سختآافزارهای آزاد را به کار ببرم و اگر توانستم نرمآافزار، سختآافزار و محتوای آزاد درست کنم!
دیدگاه
-
پاسخ : تبدیل تاریخ شمسی به میلادی
با سلام خدمت همه دوستان
این قضیه gpl رو میشه یه کم توضیح بدین چیه ، کیه ، چی کار میکنه ؟ :mrgreen:oo:
من با بیسکام کار میکنم و تو تبدیل برنامه در مورد خط زیر نمیدونم چی کار باید بکنم در حقیقت اصلا نمی دونم عبارت i==1 && leap یعنی چی ؟ :eek: چون این عبارت تو حلقه for نوشته شده متغیر i تکلیفش چی میشه؟ ممنون میشم راهنماییم کنید
( ++ for (i=0 ; g_day_no>= g_days_in_month[i] + ( i== 1 && leap ) ; i
(g_day_no - = g_days_in_month[i] + ( i== 1 && leapچه دعایی کنمت بهترازاین ،که کنار پسر فاطمه هنگام اذان ، سحر جمعه ای پشت دیوار بقیع قامتت قد بکشد در دو رکعت به نمازی که نثار حرم و گنبد برپا شده ی حضرت زهرا بکنی ... انشاالله
دیدگاه
-
پاسخ : تبدیل تاریخ شمسی به میلادی
نوشته اصلی توسط miklaبا سلام خدمت همه دوستان
این قضیه gpl رو میشه یه کم توضیح بدین چیه ، کیه ، چی کار میکنه ؟ :mrgreen:oo:
که مثلا اکثر برنامه هایی که برای لینوکس نوشته میشه تحت این مجوزه
شما در استفاده از برنامه ای که تحت این مجوز منتشر شده کاملا آزادی
و حتی میتونی اونارو بنا به نیاز خودت ویرایش کنی و دوباره منتشرش کنی. البته تو هم باید اونو تحت GPL منتشر کنی
بعنوان مثال کامپایلر محبوب gcc که برای AVR , ARM , ... هم پورت شده تحت GPL منتشر شده
و شما برای استفاده کامل از اون مجبور بهآ Crack ( زبونم لال ) اون نیستی
و خیلی برنامه ها و سورس کدهای دیگه. مثل همین تقویم
در مقدمه پروانه این مجوز تصریح شده که قصد GPL دفاع از آزادیهای برنامهآنویسان، توسعهآدهندگان و کاربران است
( البته به قول لینوس توروالدز متن حقوقی GPL زیاد محبت آمیز نیست. چون بالاخره یه متن حقوقیه دیگه )
برای اطلاعات بیشتر هم اگه دوست داشتی اینارو بخون :
http://www.kaveh.org/gnu/gpl-fa.html
http://www.irantux.org/html/modules.php?op=modload&name=Sections&file= index&req=viewarticle&artid=23
http://www.irantux.org/html/modules.php?op=modload&name=Sections&file= index&req=viewarticle&artid=68
( ببخشید که زیاد احساساتی شدم ، چون وقتی حرف GNU/Linux و اینا میاد وسط من یه نمور دست و پامو گم میکنم :icon_razz: )
نوشته اصلی توسط miklaمن با بیسکام کار میکنم و تو تبدیل برنامه در مورد خط زیر نمیدونم چی کار باید بکنم در حقیقت اصلا نمی دونم عبارت i==1 && leap یعنی چی ؟ :eek: چون این عبارت تو حلقه for نوشته شده متغیر i تکلیفش چی میشه؟ ممنون میشم راهنماییم کنید
( ++ for (i=0 ; g_day_no>= g_days_in_month[i] + ( i== 1 && leap ) ; i
(g_day_no - = g_days_in_month[i] + ( i== 1 && leap
ولی نتیجه عملگر && وقتی درسته که هر دو تا عملوند که در اینجا 1 و Leap هستن دارای ارزش درستی باشن
چون 1 همیشه ارزش درستیه پس هر موقع Leap دارای ارزش درستی باشه ، عملگر && هم ارزش درستی رو برمیگردونه
منظور از ارزش درست یعنی 1 و نادرست هم یعنی صفر
عملگر == هم وقتی ارزش درست برمیگردونه که مقدار دو تا عملوندش با هم مساوی باشن
مثلا در اینجا هر موقع مقدار یا ارزش i برابر ارزش 1 && leap باشه ، ارزش درست برگردونده میشه ( یعنی همون یک )
حالا دیگه بقیشو خودت میدونی ، البته خوشحال میشم بتونم بیشتر کمک کنم
امیدوارم موفق شی پورتش کنی
راستی اگه تونستی پورتش کنی تحت GPL منتشرش کن
دیدگاه
-
پاسخ : تبدیل تاریخ شمسی به میلادی
سلام خدمت همه دوستان متاسفانه من هنوز نتونستم یک الگوریتم درست برای تبدیل تاریخ شمسی به میلادی پیدا کنم برانامه ای هم که manian عزیز گزاشتن رو هم تو بیسکام تبدیل کردم ولی جواب درست نگرفتم اگه دوستان بتونن راهنمایی کنن ممنون میشم :cry:چه دعایی کنمت بهترازاین ،که کنار پسر فاطمه هنگام اذان ، سحر جمعه ای پشت دیوار بقیع قامتت قد بکشد در دو رکعت به نمازی که نثار حرم و گنبد برپا شده ی حضرت زهرا بکنی ... انشاالله
دیدگاه
-
پاسخ : تبدیل تاریخ شمسی به میلادی
با سلام خدمت همه دوستان برنامه زیر تاریخ شمسی رو به میلادی تبدیل میکنه من این برنامه رو برای سال 86 تا 89 بررسی کردم ودرست جواب داده
متغیر GY , GM, GD, به ترتیب روز و ماه و سال شمسی ورودی برای تبدیل است
Dim Jy As Word
Dim Jm As Byte
Dim Jd As Byte
Dim Gy As Word
Dim Gm As Byte
Dim Gd As Byte
Dim Gm_array(12) As Word
Dim Gmonth_a(12) As Byte
Gmonth_a(1) = 31
Gmonth_a(2) = 28
Gmonth_a(3) = 31
Gmonth_a(4) = 30
Gmonth_a(5) = 31
Gmonth_a(6) = 30
Gmonth_a(7) = 31
Gmonth_a(8) = 31
Gmonth_a(9) = 30
Gmonth_a(10) = 31
Gmonth_a(11) = 30
Gmonth_a(12) = 31
'********************************** Jalili_to_gregorian
Sub Jalili_to_gregorian
Gm_array(1) = 287
Gm_array(2) = 318
Gm_array(3) = 346
Gm_array(4) = 12
Gm_array(5) = 42
Gm_array(6) = 73
Gm_array(7) = 103
Gm_array(8) = 134
Gm_array(9) = 165
Gm_array(10) = 195
Gm_array(11) = 226
Gm_array(12) = 256
Local Temp1 As Integer
Local Temp2 As Integer
Local Temp3 As Integer
Local Temp4 As Integer
Local Gyp As Word
Local Z As Integer
Local Mid_day As Integer
Local Mid_cabise As Single
Local Mid_2 As Word
Local Cabise As Byte
Local Total_day_of_year As Integer
Local Total_day_g As Integer
Local Mid_3 As Word
Local Cabisemiladi As Byte
Local Cabise_p As Byte
If Jm < 7 Then
Total_day_of_year = Jm - 1
Total_day_of_year = Total_day_of_year * 31
Total_day_of_year = Total_day_of_year + Jd
Else
Total_day_of_year = Jm - 7
Total_day_of_year = Total_day_of_year * 30
Total_day_of_year = 186 + Total_day_of_year
Total_day_of_year = Total_day_of_year + Jd
End If
Mid_cabise = Jy / 4
Mid_2 = Mid_cabise * 100
Mid_2 = Mid_2 Mod 100
If Mid_2 = 75 Then
Cabise = 1
Mid_3 = 287
Else
Cabise = 0
For Z = 1 To 12
Gm_array(z) = Gm_array(z) - 1
Next
Mid_3 = 286
End If
If Total_day_of_year =< Mid_3 Then
Gy = Jy + 621
Else
Gy = Jy + 622
End If
Temp1 = Gy Mod 4
Temp2 = Gy Mod 100
Temp3 = Gy Mod 400
Temp4 = Temp1 And Temp2
If Temp4 <> 0 Or Temp3 = 0 Then
Gmonth_a(2) = 28
Cabisemiladi = 0
Else
Gmonth_a(2) = 29
Cabisemiladi = 1
End If
If Cabise = 1 Or Cabisemiladi = 1 Then
Gm_array(3) = 346
End If
If Gm_array(3) < Total_day_of_year Or Total_day_of_year =< Gm_array(4) Then
Z = 3
Goto Select_m
End If
If Gm_array(12) < Total_day_of_year And Total_day_of_year =< Gm_array(1) Then
Z = 12
Goto Select_m
End If
For Z = 1 To 11 Step 1
If Z = 3 Then Incr Z
If Gm_array(z) < Total_day_of_year And Total_day_of_year =< Gm_array(z + 1) Then Goto Select_m
Next
Select_m:
Gm = Z
Temp4 = Gm - 1
If Temp4 > 0 Then
For Z = 1 To Temp4
Total_day_g = Total_day_g + Gmonth_a(z)
Next
End If
If Total_day_of_year < Mid_3 Or Total_day_of_year = Mid_3 Then
Mid_day = Total_day_of_year + 79
Else
Mid_day = Total_day_of_year - Mid_3
End If
Gd = Mid_day - Total_day_g
Gy = Gy - 2000
End Subچه دعایی کنمت بهترازاین ،که کنار پسر فاطمه هنگام اذان ، سحر جمعه ای پشت دیوار بقیع قامتت قد بکشد در دو رکعت به نمازی که نثار حرم و گنبد برپا شده ی حضرت زهرا بکنی ... انشاالله
دیدگاه
-
پاسخ : تبدیل تاریخ شمسی به میلادی
نوشته اصلی توسط حمید رستمیmikla جان تبریک میگم
پس بالاخره تونستی پورتش کنی
امیدوارم برنامتو تحت GPL منشر کرده باشی :biggrin:چه دعایی کنمت بهترازاین ،که کنار پسر فاطمه هنگام اذان ، سحر جمعه ای پشت دیوار بقیع قامتت قد بکشد در دو رکعت به نمازی که نثار حرم و گنبد برپا شده ی حضرت زهرا بکنی ... انشاالله
دیدگاه
دیدگاه