#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;
}