-
شنبه 06 تیر 1388, 11:27 صبح
#11
کاربر تازه وارد
نقل قول: متفاوت بودن ساعت هاست با ساعت ایران
من يك تابع براي اين كار نوشتم كه فكر كنم بشه راحت ازش استفاده كرد. البته قبلش بايد تفاوت ساعت سرور هاست رو بگريد كه اونم خيلي ساده هست. بعد توي اين تابع ازش استفاده كنيد.
public static string shamsi(int g_y1, int g_m1, int g_d1, string FormatDate)
{
byte[] g_days_in_month = new byte[] { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
byte[] j_days_in_month = new byte[] { 31, 31, 31, 31, 31, 31, 30, 30, 30, 30, 30, 29 };
int g_y = 0;
int g_m = 0;
int g_d = 0;
string hh = "";
string mmm = "";
string r = FormatDate;
if ((g_y1 <= 0))
{
g_y = DateTime.Now.AddMinutes(nazari.timediff()).Year;
g_m = DateTime.Now.AddMinutes(nazari.timediff()).Month;
g_d = DateTime.Now.AddMinutes(nazari.timediff()).Day;
hh = DateTime.Now.AddMinutes(nazari.timediff()).Hour.To String();
mmm = DateTime.Now.AddMinutes(nazari.timediff()).Minute. ToString();
}
else
{
g_y = g_y1;
g_m = g_m1;
g_d = g_d1;
hh = DateTime.Now.Hour.ToString();
mmm = DateTime.Now.Minute.ToString();
}
int gy = g_y - 1600;
int gm = g_m - 1;
int gd = g_d - 1;
int g_day_no = 365 * gy + nazari.div((gy + 3), 4) - nazari.div((gy + 99), 100) + nazari.div((gy + 399), 400);
int i;
for (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;
j_day_no = g_day_no - 79;
int j_np = nazari.div(j_day_no, 12053);
j_day_no = j_day_no % 12053;
int jy = 979 + 33 * j_np + 4 * nazari.div(j_day_no, 1461);
j_day_no %= 1461;
if (j_day_no >= 366)
{
jy += nazari.div(j_day_no - 1, 365);
j_day_no = (j_day_no - 1) % 365;
}
for (i = 0; i < 11 && j_day_no >= j_days_in_month[i]; ++i)
j_day_no -= j_days_in_month[i];
int jm = i + 1;
int jd = j_day_no + 1;
string yy = jy.ToString();
string mm = jm.ToString();
string dd = jd.ToString();
if (mmm.Length == 1)
r = r.Replace("MM", "0" + mmm);
else r = r.Replace("MM", mmm);
r = r.Replace("M", mmm);
if (hh.Length == 1)
r = r.Replace("hh", "0" + hh);
else r = r.Replace("hh", hh);
r = r.Replace("h", hh);
if (dd.Length == 1)
r = r.Replace("dd", "0" + dd);
else r = r.Replace("dd", dd);
r = r.Replace("d", dd);
if (mm.Length == 1)
r = r.Replace("mm", "0" + mm);
else r = r.Replace("mm", mm);
r = r.Replace("m", mm);
r = r.Replace("yyyy", yy);
r = r.Replace("yy", yy.Substring(2, 2));
return r;
}
public static int timediff()
{
return 0;// (4 * 60) + 30;
}
تفاوت ساعت رو به دقيقه بنويسيد
بعد براي استافده مثلا مي تونيد اينطوري بنويسيد
label1.text=shamsi(2009,6,6,"yy/mm/dd hh:MM")
توجه داشته باشيد كه MM مربوط به ساعت حتما بايد با حروف بزرگ باشد
قوانین ایجاد تاپیک در تالار
- شما نمی توانید تاپیک جدید ایجاد کنید
- شما نمی توانید به تاپیک ها پاسخ دهید
- شما نمی توانید ضمیمه ارسال کنید
- شما نمی توانید پاسخ هایتان را ویرایش کنید
-
قوانین سایت