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

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

0 امتیاز
برنامه ای بنویسید که تاریخ جاری سیستم را گرفته و به تاریخ شمسی تبدیل کند.

تاریخ جاری سیستم میلادی می باشد



کد برنامه به همراه یک نمونه اجرا در قالب پی دی اف یا ورد ارسال کنید.
سوال شده آذر 8, 1399  بوسیله ی حسین عربلو (امتیاز 42)   5 10 11

1 پاسخ

+1 امتیاز
 
بهترین پاسخ
#include <iostream>
using namespace std;

void gregorian_to_jalali(int g_y, int g_m, int g_d, int &j_y, int &j_m, int &j_d)
{
    int g_days_in_month[] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
    int j_days_in_month[] = { 31, 31, 31, 31, 31, 31, 30, 30, 30, 30, 30, 29 };
    int gy = g_y - 1600;
    int gm = g_m - 1;
    int gd = g_d - 1;
    int g_day_no = 365 * gy + gy / 4 - gy / 100 + gy / 400;
    for (int i = 0; i < gm; ++i)
        g_day_no += g_days_in_month[i];
    if (gm > 1 && ((gy % 4 == 0 && gy % 100 != 0) || (gy % 400 == 0)))
        ++g_day_no;
    g_day_no += gd;
    int j_day_no = g_day_no - 79;
    int j_np = j_day_no / 12053;
    j_day_no %= 12053;
    int jy = 979 + 33 * j_np + 4 * j_day_no / 1461;
    j_day_no %= 1461;
    if (j_day_no >= 366)
    {
        jy += j_day_no / 365;
        j_day_no %= 365;
    }
    int i;
    for (i = 0; i < 11 && j_day_no >= j_days_in_month[i]; ++i)
        j_day_no -= j_days_in_month[i];
    j_m = i + 1;
    j_d = j_day_no + 1;
    j_y = jy;
}


void main()
{
    int g_y, g_m, g_d;
    int j_y, j_m, j_d;
    time_t t = time(NULL);
    struct tm tm = *localtime(&t);
    g_y = tm.tm_year + 1900;
    g_m = tm.tm_mon + 1;
    g_d = tm.tm_mday;
    gregorian_to_jalali(g_y, g_m, g_d, j_y, j_m, j_d);
    cout << "Today is " << j_y << "/" << j_m << "/" << j_d << endl;
}

 

پاسخ داده شده تیر 23, 1401 بوسیله ی copilot (امتیاز 1,549)   1 3 6
انتخاب شد تیر 24, 1401 بوسیله ی farnoosh
...