تبلیغات :
ماهان سرور
آکوستیک ، فوم شانه تخم مرغی ، پنل صداگیر ، یونولیت
فروش آنلاین لباس کودک
خرید فالوور ایرانی
خرید فالوور اینستاگرام
خرید ممبر تلگرام

[ + افزودن آگهی متنی جدید ]




صفحه 1 از 2 12 آخرآخر
نمايش نتايج 1 به 10 از 11

نام تاپيک: برنامه اي براي تبدیل تاریخ شمسی به میلادی و بالعکس را ميخواستم يا فرمول ان را

  1. #1
    داره خودمونی میشه
    تاريخ عضويت
    Sep 2004
    محل سكونت
    فارس-لارستان
    پست ها
    47

    پيش فرض برنامه اي براي تبدیل تاریخ شمسی ب

    برنامه اي براي تبدیل تاریخ شمسی به میلادی و بالعکس را ميخواستم يا فرمول ان را

  2. #2
    حـــــرفـه ای sa3er's Avatar
    تاريخ عضويت
    Jul 2005
    محل سكونت
    Tehran
    پست ها
    2,382

    پيش فرض

    سلام از اينترنت پيدا نکردم براتون upload کردم:
    [ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]

    البته اين سايت يه همچين کاری انجام ميده به صورت online اگه خواستيد:
    [ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]

    موفق باشيد

  3. #3
    حـــــرفـه ای Babak's Avatar
    تاريخ عضويت
    Jun 2004
    پست ها
    9,154

    پيش فرض

    به اين سايت يه نگاهی بنداز

    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

  4. #4
    پروفشنال nimo's Avatar
    تاريخ عضويت
    May 2005
    محل سكونت
    At Home
    پست ها
    558

    پيش فرض

    نقل قول نوشته شده توسط Babak
    به اين سايت يه نگاهی بنداز

    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    به چه زبونيه اين سايت؟ آلمانيه؟

  5. #5
    آخر فروم باز Razel's Avatar
    تاريخ عضويت
    Feb 2005
    محل سكونت
    .::0451 ::.
    پست ها
    1,335

    پيش فرض

    سلام
    دوست من بد نیست به این تاپیک هم یه سر بزنی:

    [ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]



    در ضمن سایت oxinsoft.comهم برنامه تقویم شمسی رو برا ی دانلود گذاشته

    موفق باشید

  6. #6
    آخر فروم باز Alireza_Shafaei_PCworld's Avatar
    تاريخ عضويت
    Sep 2004
    محل سكونت
    اصفهان
    پست ها
    2,077

    پيش فرض

    لگوریتم تبدیل تاریخ میلادی به تاریخ شمسی :

    تبدیل تاریخ میلادی به شمسی بسیار راحتتر از تبدیل تاریخ شمسی به میلادی است.

    برای نوشتن این الگوریتم به اختلاف روزهای میان اولین روز سال میلادی و اولین روز سال شمسی نیاز داریم که این اختلاف روز(در صورتی که سال کبیسه باشد یا نباشد) "79" روز است.

    برای تشخیص کبیسه بودن یا نبودن سال از روش زیر استفاده می کنیم:
    اگر سال داده شده بر100و400 بخشپذیر باشد" یا بر" 100 بخشپذیر نباشد بر 4 بخشپذیر باشد" آنگاه سال کبیسه است، در غیر این صورت سال کبیسه نیست.
    با توجه به کبیسه بودن یا کبیسه نبودن سال مشخص می کنیم که در کدامین روز سال میلادی قرار داریم.

    دو حالت پیش می آید:

    * روزی که در آن قرار داریم از 79 بیشتر است
    به این معنی است که در ماههای بعد از فروردین قرار داریم.

    حال باید مشخص کنیم که در 6 ماه اول سال شمسی قرار داریم یا در 6 ماه دوم سال قرار داریم،
    برای اینکار ابتدا 79 روز از تعداد روزها کم می کنیم تا در اول فروردین قرار بگیریم حال اگر تعداد روزها از "186"(31*6) کمتر باشد یعنی در 6 ماه اول سال شمسی قرار داریم در غیر اینصورت در 6 ماه دوم قرار داریم.

    1. اگر در 6 ماه اول سال قرار گرفته باشیم :تعداد روزها را بر "31" تقسیم می کنیم(6 ماه اول در سال شمسی 31 روزه است.)
    اگر باقیمانده این تقسیم صفر شد خارج قسمت تقسیم برابر با ماه شمسی می شود و روز شمسی برابر با 31 می شود.
    اگر باقیمانده صفر نشود ماه شمسی برابر با خارج قسمت باضافه یک می شود و روز شمسی همان باقیمانده است.

    2. اگر در 6 ماه دوم سالقرار گرفته باشیم : "186" روز از تعداد روزها کم می کنیم و آن را بر "30" تقسیم می کنیم .
    اگرباقیمانده این تقسیم صفر شد خارج قسمت تقسیم باضافه"6" برابر با ماه شمسی می شودو روز شمسی برابر با30 می شود.
    اگر باقیمانده صفر نشود ماه شمسی برابر با خارج قسمت باضافه"7" می شودو روز شمسی همان باقیمانده است.

    سال شمسی از تفاضل سال میلادی با"621" بدست می آید.

    * روزی که در آن قرار داریم کمتر از"79"است
    که این به این معنی است که درروزهایی بین اولین روزسال میلادی تا اولین روز شمسی (ماههای دی ،بهمن و اسفند)قرار داریم.

    اختلاف روز بین اولین روز سال میلادی داده شده و اولین روز دی ماه در سال شمسی را در نظر می گیریم که این اختلاف برای سال کبیسه"11" و برای غیر کبیسه "10" است.*دقت کنید که در این الگوریتم برای مشخص کردن این اختلاف باید سال قبل از سال داده شده را در نظر بگیریم زیرا سال قبل بر روی اولین روز سال میلادی تاثیر می گزارد.*

    اختلاف روز با تعداد روز محاسبه شده جمع می کنیم ، آن را بر"30" تقسیم می کنیم(3 ماه آخر سال شمسی 30 روزه است.).
    اگر باقیمانده این تقسیم صفر شود خارج قسمت تقسیم باضافه"9" برابر با ماه شمسی می شودو روز شمسی برابر با"30" می شود.
    اگر باقیمانده صفر نشود ماه شمسی برابر با خارج قسمت باضافه"10"می شودو روز شمسی همان باقیمانده است.

    در این حالت سال شمسی از تفاضل سال میلادی با"622" بدست می آید.(زیرا در سال قبل قرار داریم.)



    پیاده سازی الگوریتم به زبان c :

    typedef struct _SHAMSIDATE
    {
    int iYear;
    int iMonth;
    int iDay;
    }SHAMSIDATE;

    SHAMSIDATE MiladiToShamsi(int iMiladiMonth,int iMiladiDay,int iMiladiYear)
    {

    int shamsiDay, shamsiMonth, shamsiYear;
    int dayCount,farvardinDayDiff,deyDayDiff ;
    int sumDayMiladiMonth[] = {0,31,59,90,120,151,181,212,243,273,304,334};
    int sumDayMiladiMonthLeap[]= {0,31,60,91,121,152,182,213,244,274,305,335};
    SHAMSIDATE shamsidate;

    if (MiladiIsLeap(iMiladiYear))
    {
    dayCount = sumDayMiladiMonthLeap[iMiladiMonth-1] + iMiladiDay;
    }
    else
    {
    dayCount = sumDayMiladiMonth[iMiladiMonth-1] + iMiladiDay;
    }
    if((MiladiIsLeap(iMiladiYear - 1)))
    {
    deyDayDiff = 11;
    }
    else
    {
    deyDayDiff = 10;
    }
    if (dayCount > farvardinDayDiff)
    {
    dayCount = dayCount - farvardinDayDiff;
    if (dayCount <= 186)
    {
    switch (dayCount%31)
    {
    case 0:
    shamsiMonth = dayCount / 31;
    shamsiDay = 31;
    break;
    default:
    shamsiMonth = (dayCount / 31) + 1;
    shamsiDay = (dayCount%31);
    break;
    }
    shamsiYear = iMiladiYear - 621;
    }
    else
    {
    dayCount = dayCount - 186;
    switch (dayCount%30)
    {
    case 0:
    shamsiMonth = (dayCount / 30) + 6;
    shamsiDay = 30;
    break;
    default:
    shamsiMonth = (dayCount / 30) + 7;
    shamsiDay = (dayCount%30);
    break;
    }
    shamsiYear = iMiladiYear - 621;
    }
    }
    else
    {
    dayCount = dayCount + deyDayDiff;

    switch (dayCount%30)
    {
    case 0 :
    shamsiMonth = (dayCount / 30) + 9;
    shamsiDay = 30;
    break;
    default:
    shamsiMonth = (dayCount / 30) + 10;
    shamsiDay = (dayCount%30);
    break;
    }
    shamsiYear = iMiladiYear - 622;

    }
    shamsidate.iYear = shamsiYear;
    shamsidate.iMonth = shamsiMonth;
    shamsidate.iDay = shamsiDay;

    return shamsidate ;
    }

  7. #7
    آخر فروم باز Nesta's Avatar
    تاريخ عضويت
    Jan 2005
    محل سكونت
    tehran
    پست ها
    3,343

    پيش فرض

    سلام دوستان من فکر کنم دیگه این مبهست به انجمن برنامه نویسی‌ مربوط می‌شه ایشون دیگه یک کمپننت میخوان .قضیه فرق کرد.

  8. #8
    داره خودمونی میشه
    تاريخ عضويت
    Jun 2005
    محل سكونت
    تهران
    پست ها
    69

    پيش فرض

    سلام.....من اكشن اسكريپت فلش اون رو دارم.....اگه ميخواين تا كدش رو اينجا قرار بدم....

  9. #9
    در آغاز فعالیت
    تاريخ عضويت
    Aug 2009
    پست ها
    3

    پيش فرض

    سلام
    کسی میدونه چطوری با دلفی میشه برنامه نوشت که دو تاریخ را دریافت کند و تفاضل آن دو تاریخ را به تفکیک سال / ماه / روز اعلان کند
    مثلا بگه دو سال و 4 ماه و 2 روز و فردا بشه دو سال و 4 ماه و 3 روز ال آخر
    لطفا گه کسی میدونه کد نویسیش رو بنویسه

  10. #10
    حـــــرفـه ای Mohsen6558's Avatar
    تاريخ عضويت
    Nov 2004
    محل سكونت
    آذربایجان
    پست ها
    5,010

    پيش فرض

    به فایل پیوستی یه نگا بندازین همراه با سورس هست در VB6

صفحه 1 از 2 12 آخرآخر

Thread Information

Users Browsing this Thread

هم اکنون 1 کاربر در حال مشاهده این تاپیک میباشد. (0 کاربر عضو شده و 1 مهمان)

User Tag List

قوانين ايجاد تاپيک در انجمن

  • شما نمی توانید تاپیک ایحاد کنید
  • شما نمی توانید پاسخی ارسال کنید
  • شما نمی توانید فایل پیوست کنید
  • شما نمی توانید پاسخ خود را ویرایش کنید
  •