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

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




نمايش نتايج 1 به 2 از 2

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

  1. #1
    در آغاز فعالیت
    تاريخ عضويت
    Oct 2013
    پست ها
    1

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

    یک برنامه ی c یا c++ تست شده نیاز دارم

  2. #2
    در آغاز فعالیت
    تاريخ عضويت
    Nov 2013
    پست ها
    4

    پيش فرض

    1. typedef struct _SHAMSIDATE

    2. {

    3. int iYear;

    4. int iMonth;

    5. int iDay;

    6. }SHAMSIDATE;

    7. SHAMSIDATE MiladiToShamsi(int iMiladiMonth,int iMiladiDay,int iMiladiYear)

    8. {

    9. int shamsiDay, shamsiMonth, shamsiYear;

    10. int dayCount,farvardinDayDiff,deyDayDiff ;

    11. int sumDayMiladiMonth[] = {0,31,59,90,120,151,181,212,243,273,304,334};

    12. int sumDayMiladiMonthLeap[]= {0,31,60,91,121,152,182,213,244,274,305,335};

    13. SHAMSIDATE shamsidate;

    14. farvardinDayDiff=79;

    15. if (MiladiIsLeap(iMiladiYear))

    16. {

    17. dayCount = sumDayMiladiMonthLeap[iMiladiMonth-1] + iMiladiDay;

    18. }

    19. else

    20. {

    21. dayCount = sumDayMiladiMonth[iMiladiMonth-1] + iMiladiDay;

    22. }

    23. if((MiladiIsLeap(iMiladiYear - 1)))

    24. {

    25. deyDayDiff = 11;

    26. }

    27. else

    28. {

    29. deyDayDiff = 10;

    30. }

    31. if (dayCount > farvardinDayDiff)

    32. {

    33. dayCount = dayCount - farvardinDayDiff;

    34. if (dayCount <= 186)

    35. {

    36. switch (dayCount%31)

    37. {

    38. case 0:

    39. shamsiMonth = dayCount / 31;

    40. shamsiDay = 31;

    41. break;

    42. default:

    43. shamsiMonth = (dayCount / 31) + 1;

    44. shamsiDay = (dayCount%31);

    45. break;

    46. }

    47. shamsiYear = iMiladiYear - 621;

    48. }

    49. else

    50. {

    51. dayCount = dayCount - 186;

    52. switch (dayCount%30)

    53. {

    54. case 0:

    55. shamsiMonth = (dayCount / 30) + 6;

    56. shamsiDay = 30;

    57. break;

    58. default:

    59. shamsiMonth = (dayCount / 30) + 7;

    60. shamsiDay = (dayCount%30);

    61. break;

    62. }

    63. shamsiYear = iMiladiYear - 621;

    64. }

    65. }

    66. else

    67. {

    68. dayCount = dayCount + deyDayDiff;

    69. switch (dayCount%30)

    70. {

    71. case 0 :

    72. shamsiMonth = (dayCount / 30) + 9;

    73. shamsiDay = 30;

    74. break;

    75. default:

    76. shamsiMonth = (dayCount / 30) + 10;

    77. shamsiDay = (dayCount%30);

    78. break;

    79. }

    80. shamsiYear = iMiladiYear - 622;

    81. }

    82. shamsidate.iYear = shamsiYear;

    83. shamsidate.iMonth = shamsiMonth;

    84. shamsidate.iDay = shamsiDay;

    85. return shamsidate ;

    86. }

    87. // the function check a miladiyear is leap or not.

    88. BOOL MiladiIsLeap(int miladiYear)

    89. {

    90. if(((miladiYear % 100)!= 0 && (miladiYear % 4) == 0) || ((miladiYear % 100)== 0 && (miladiYear % 400) == 0))

    91. return TRUE;

    92. else

    93. return FALSE;

    94. }

Thread Information

Users Browsing this Thread

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

User Tag List

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

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