PDA

View Full Version : سوال: بدست آوردن 60 رو جلوتر تاریخ شمسی حال



tarsim
چهارشنبه 10 اردیبهشت 1393, 18:14 عصر
سلام به کد زیر زنگاه کنید


System.Globalization.PersianCalendar persiandate = new System.Globalization.PersianCalendar();
string p_date = persiandate.GetYear(System.DateTime.Now) + "/";
if (persiandate.GetMonth(System.DateTime.Now) < 10)
p_date += "0";

p_date = p_date + persiandate.GetMonth(System.DateTime.Now) + "/";

if (persiandate.GetDayOfMonth(System.DateTime.Now) < 10)
p_date += "0";

p_date = p_date + persiandate.GetDayOfMonth(System.DateTime.Now);

sub2 = p_date;

این کد تاریخ شمسی رو به صورت مثلا 1393/02/27 برمیگردونه .من میخوام 3 ماه جلوتر و یا 2 ماه جلوتر هر تاریخی که اون روز ثبت میشه رو بدست بیارم . باید چه تغیراتی بدم ؟

parvizwpf
چهارشنبه 10 اردیبهشت 1393, 18:22 عصر
ببینید addMonths داره

tarsim
چهارشنبه 10 اردیبهشت 1393, 18:25 عصر
داره اما کجا باید اضافه کرد ؟

parvizwpf
چهارشنبه 10 اردیبهشت 1393, 18:30 عصر
خب ببنید اون متد چی میگیره و چی برمیگردونه.

tarsim
چهارشنبه 10 اردیبهشت 1393, 18:32 عصر
دوست عزیز به این کد نگاه کنید

textBox1.Text = DateTime.Now.ToString("dd/MM/yyyy");

textBox2.Text = DateTime.Now.AddDays(-1).ToString("dd/MM/yyyy");


این کد دقیقا چیزی که من میخوام هست ولی برای تاریخ میلادیه و من شمسیش رو میخوام

parvizwpf
چهارشنبه 10 اردیبهشت 1393, 18:45 عصر
int m = persiandate.GetMonth(System.DateTime.Now);
if (m < 10)
p_date += "0";

p_date = p_date + persiandate.GetMonth(System.DateTime.Now.AddMonths (2)) + "/";

tarsim
چهارشنبه 10 اردیبهشت 1393, 18:55 عصر
این کد شمارو ازمایش کردم اگر 30 روز بزنیم یکی ماه جلو نمیره

parvizwpf
چهارشنبه 10 اردیبهشت 1393, 18:57 عصر
قراره یه عدد بین 1 تا 12 بگیره متد AddMonts .من منظورتو نمیفهمم.

tarsim
چهارشنبه 10 اردیبهشت 1393, 19:04 عصر
ببینید من یک کد میخوام مثلا تاریخ 1393/01/15 رو بگیره توی یک تکست بیاد تاریخ یک روز جلوتر روز نشون بده .حالا منظورم از یک روز فقط یک روز نیست متغیره عوض میشه مثلا 25 روز 100 روز به عنوان مثال اگر بدم یک روز جلوتر بیاد بشه 1393/01/16 یا اگر بدم یک سال جلوتر بشه 1394/01/15

parvizwpf
چهارشنبه 10 اردیبهشت 1393, 19:07 عصر
خب مهندس عزیز اگه صحیت شما روی روزه اون روزت رو addDays کن. الان با این تفاسیر مشکلت باید حل شده باشه. شما یه نگاهی به DateTime در رفرنس مایکروسافت بندار ببین چطوری باهاش کار میکنن persiancalendar هم چیزی هست که از این کلاس مشتق شده.

tarsim
چهارشنبه 10 اردیبهشت 1393, 19:12 عصر
تشکر از پاسخت . مشکلم حل شد
با کد زیر که البته ربطی به کلاسکی که بالا نوشتم نداره


System.DateTime Md = DateTime.Now.Date.Add(new System.TimeSpan(-2, 0, 0, 0));
int Y = Sd.GetYear(Md);
int M = Sd.GetMonth(Md);
int D = Sd.GetDayOfMonth(Md);

Response.Write(Y.ToString() + "/" + M.ToString() + "/" + D.ToString());

parvizwpf
چهارشنبه 10 اردیبهشت 1393, 19:13 عصر
بخداAddDays همین کارو انجام میداد

meysam99
پنج شنبه 11 اردیبهشت 1393, 11:56 صبح
یا از


DateTime.Now.Date.Add()

یا از


DateTime.Now.AddDays()

استفاده کن.