PDA

View Full Version : راهنمایی در مورد یک قطعه کد برای اختلاف تاریخ شمسی



jafarpalideh
شنبه 17 تیر 1391, 07:39 صبح
با سلام
میشه آخر قطعه کد زیر رو توضیح بدید که چیکار میکنه ؟

public long DiffOfShamsiDate(string shmasidatestart, string shmasidateend)
{
long Diffdate = 0;
System.Globalization.PersianCalendar dc = new System.Globalization.PersianCalendar();
int yy, mm, dd;
yy =Int32.Parse(shmasidatestart.Substring(0, 4));
mm =Int32.Parse( shmasidatestart.Substring(5, 2));
dd = Int32.Parse(shmasidatestart.Substring(8, 2));
DateTime tstart = dc.ToDateTime(yy, mm, dd, 0, 0, 0, 0);
yy = Int32.Parse(shmasidateend.Substring(0, 4));
mm =Int32.Parse( shmasidateend.Substring(5, 2));
dd =Int32.Parse( shmasidateend.Substring(8, 2));
DateTime tend = dc.ToDateTime(yy, mm, dd, 0, 0, 0, 0);
string diff =Convert.ToString((tend - tstart));
int temp = diff.LastIndexOf('.');
if (temp>0)
Diffdate= Convert.ToInt64(diff.Substring(0,temp));
return Diffdate;
}

private void button1_Click(object sender, EventArgs e)
{
string s1, s2;
s1 = maskedTextBox1.Text;
s2 = maskedTextBox2.Text;
textBox3.Text = DiffOfShamsiDate(s1, s2).ToString();
}
یعنی اینجاش رو نمیفهمم

int temp = diff.LastIndexOf('.');
if (temp>0)
Diffdate= Convert.ToInt64(diff.Substring(0,temp));

jafarpalideh
شنبه 17 تیر 1391, 16:51 عصر
کار این کد پایینیه جیه؟

the king
یک شنبه 18 تیر 1391, 00:51 صبح
کار این کد پایینیه جیه؟

کد خوبی نیست اما به هر حال، اختلاف بین دو تاریخ بصورت یک عدد اعشاری بر حسب روز بدست میاد، حالا اگر اون عدد رو به رشته تبدیل کنید فرضا میشه "12.42"
در این رشته دنبال . می گرده که محل نقطه اعشاری ئه، صرفا اون بخش قبل از اعشار (12) رو در نظر می گیره و خرده های اعشاری رو در نظر نمی گیره.