نمایش نتایج 1 تا 5 از 5

نام تاپیک: در خصوص روز ژولیوسی چه می دانید؟

  1. #1

    در خصوص روز ژولیوسی چه می دانید؟

    میدانید

    sys)1(


    به چه دردی می خورد؟
    ____________________________
    همه چیز را همگان دانند و همگان هنوز از مادر زاده نشده اند. (بزرگمهر حکیم)

  2. #2
    نقل قول نوشته شده توسط rezaTavak مشاهده تاپیک
    میدانید

    sys)1(


    به چه دردی می خورد؟
    قبلا مختصر توضیحاتی خودتان در موردش داده بودید. صبر کن نمیخوای بگی که این دستور روز ژیلوسی رو بر میگردونه؟

  3. #3
    http://en.wikipedia.org/wiki/Julius_Caesar
    ژولیوس سزار که با سزارین http://en.wikipedia.org/wiki/Caesarian_section بدنیا آمد تقویمی طراحی کرد که سالها کاربرد داشت.

    او مردی بود شبیه فیل که سکه ای طرح فیل هم در دوران او رواج داشت.

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




    اخترشناسان برای کار با تقویمها از دیرزمان این تقویم را مورد استفاده قرار می دادند.


    فعلا تا بعد ...

    روز ژولیوسی مبنای کار برای محاسبات زیر است:

    تبدیل تقویمها به هم.
    محاسبات نجومی.
    Azimuth, Longitude برای خورشید و ماه.


    ::: پس :::
    برای محاسبات طلوع و غروب خورشید این تقویم استفاده می شود.

    در تقویمی که قبلا ارائه کرده ام روز ژولیوسی با تابع gregorian_jdn محاسبه می شود. یعنی تابع زیر :

    #DEFINE GREGORIAN ISO_8601
    Function Gregorian_jdn
    LPARAMETERS iYear,iMonth,iDay,CalendarType
    LOCAL lnYear,lnMonth,lnDay
    IF PARAMETERS() < 4
    CalendarType = GREGORIAN
    ENDIF
    IF CalendarType = GREGORIAN And ((iYear > 1582) OR ;
    ((iYear = 1582) And (iMonth > 10)) OR ;
    ((iYear = 1582) And (iMonth = 10) And (iDay > 14))) THEN
    lnYear = iYear
    lnMonth = iMonth
    lnDay = iDay
    RETURN INT((1461 * (lnYear + 4800 + INT((lnMonth - 14) / 12))) / 4) ;
    + INT((367 * (lnMonth - 2 - 12 * (INT((lnMonth - 14) / 12)))) / 12) ;
    - INT((3 * (INT((lnYear + 4900 + INT((lnMonth - 14) / 12)) / 100))) / 4) ;
    + lnDay - 32075
    ELSE
    RETURN julian_jdn(iYear, iMonth, iDay)
    ENDIF
    ENDFUNC

    یعنی اگر تاریخ ارائه شده از ۱۴ / ۱۰ / ۱۵۸۲ میلادی بیشتر بود از این تابع نبود از تابع زیر استفاده کن. دلیلش این است که در این تاریخ پاپ گریگوری تقویم را اصلاح کرد به و فرم امروزی آن در آورد پس تقویم میلادی جدید گریگوری است.


    FUNCTION julian_jdn

    PARAMETERS tnYear,tnMonth,tnDay

    RETURN 367 * tnYear - INT((7 * (tnYear + 5001 + INT((tnMonth - 9) / 7))) / 4) + INT((275 * tnMonth) / 9) + tnDay + 1729777

    ENDFUNC
    توجه کنید که ISO یک استاندارد برای تقویم دارد:
    http://www.phys.uu.nl/~vgent/calendar/isocalendar.htm
    که شما می توانید از آن استفاده کنید. شماره آن ISO 8601:1998

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


    SYS(11,{^1996-12-12})
    یعنی روز ژولیوسی تاریخ فوق را بر می گرداند.

    اما ممکن است شما روز ژولیوسی را داشته باشید با تابع :

    sys(10,2450430)
    و

    sys(1)
    هم روز ژولیوسی تاریخ کامییوتر را نشان می دهد یعنی معادل زیر است:

    sys(11,date())
    آخرین ویرایش به وسیله rezaTavak : پنج شنبه 20 دی 1386 در 10:21 صبح
    ____________________________
    همه چیز را همگان دانند و همگان هنوز از مادر زاده نشده اند. (بزرگمهر حکیم)

  4. #4
    حال برای تبدیل تاریخ شمسی به روز ژولیوسی:


    #DEFINE PERSIAN_EPOCH 1948321 && The JDN of 1 Farvardin 1


    FUNCTION Mod1
    LPARAMETERS tnNumber1, tnNumber2
    RETURN SIGN(tnNumber1) * (ABS(tnNumber1) % ABS(tnNumber2)) && remain division BASIC form
    ENDFUNC



    Function persian_jdn
    LPARAMETERS iYear, iMonth, iDay
    LOCAL epbase, epyear, mdays

    IF iYear >= 0 THEN
    epbase = iYear - 474
    ELSE
    epbase = iYear - 473
    ENDIF

    epyear = 474 + MOD1(epbase, 2820)

    IF iMonth <= 7 THEN
    mdays = (iMonth - 1) * 31
    ELSE
    mdays = (iMonth - 1) * 30 + 6
    ENDIF

    RETURN iDay + mdays + INT(((epyear * 682) - 110) / 2816) ;
    + (epyear - 1) * 365 + INT(epbase / 2820) * 1029983 ;
    + (PERSIAN_EPOCH - 1)
    ENDFUNC

    ____________________________
    همه چیز را همگان دانند و همگان هنوز از مادر زاده نشده اند. (بزرگمهر حکیم)

  5. #5
    بر عکس هم ممکن است یعنی روز ژولیوسی به تاریخ که مثالهای آن در تابعی که برای تاریخ ارائه کرده ام موجود است همه توابع تبدیل با jdn یعنی روز ژولیوسی شروع می شوند.


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

    ابتدا روز ژولیوسی را بدست می آوریم.
    سپس روز را به تارخ تبدیل میکنیم.
    ____________________________
    همه چیز را همگان دانند و همگان هنوز از مادر زاده نشده اند. (بزرگمهر حکیم)

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •