PDA

View Full Version : تاریخ امروز



yekta68
چهارشنبه 17 شهریور 1389, 09:44 صبح
سلام

من می خوام توی C#‎ تاریخ امروز رو به شمسی به دست بیارم و به یه تابع توی sql ارسال کنم.
لطفا راهنماییم کنین.

با سپاس فراوان

fjm11100
چهارشنبه 17 شهریور 1389, 10:20 صبح
از System.Globalization.PersianCalendar استفاده کن.
برای تاریخ زمان حال نیز از DateTime.Now
اما یک توصیه:
بهتره تاریخ را مخصوصا تاریخ شمسی را بصورت عددی ذخیره کنی تا سرعت جستجوت بطور محسوسی بالا بره مثلا 13890617 که میشه امروز!

Bahar_HS
چهارشنبه 17 شهریور 1389, 12:19 عصر
من برای کار با تاریخ از System.Globalization.PersianCalendar استفاده می کنم،کاربر تاریخ خورشیدی وارد می کنه،این تاریخ به میلادی تبدیل میشه و در دیتابیس هم میلادی ذخیره میشه و باز وقتی قراره به کاربر نمایش داده بشه به تاریخ خورشیدی تبدیل میشه،


اما یک توصیه:
بهتره تاریخ را مخصوصا تاریخ شمسی را بصورت عددی ذخیره کنی تا سرعت جستجوت بطور محسوسی بالا بره مثلا 13890617 که میشه امروز!
چرا سرعت بالا می ره؟چون تبدیلی انجام نمیشه؟ اگه کاربر بخواد جستجو رو براساس زمان انجام بده چطور؟مثلا براساس ماه یا سال خاص ، یا یه دوره ی زمانی ، مثلا خریدهای 6 ماه گذشته ی یه مشتری؟از نوع رشته باشه بهتره یا نوع داده ی DataTime؟

rezamansori
چهارشنبه 17 شهریور 1389, 12:34 عصر
رشته.
شما می دونی چهار کاراکتر اول مربوط به سال ، دو کاراکتر بعدی ماه و دو کاراکتر آخر مربوط به روز است پس دیگه مشکل کجاست؟

fjm11100
چهارشنبه 17 شهریور 1389, 13:25 عصر
چرا سرعت بالا میره؟ چون نیازی به تبدیل کارکتر به بایت توی لایه های پایین نیست. کلا داده int یا integer سریعترین نوع داده در همه بانکهای اطلاعاتی است چون یک داده 32 بیتی کامل است که نیاز به تبدیل هم نداره
برای بدست آوردن ماه روز و سال کافیه فرمول زیر را بکار ببری:
int date = 13870712;
int day = date - (date / 100) * 100;
int year = date / 10000;
int month = (date/100)-(year*100);
--------------------
شاید تعجب کنید اما این کرم از زمان اسمبلی نویسی تو وجودم افتاده!:شیطان:

mahziar
چهارشنبه 17 شهریور 1389, 14:04 عصر
سلام

من می خوام توی C#‎‎ تاریخ امروز رو به شمسی به دست بیارم و به یه تابع توی sql ارسال کنم.
لطفا راهنماییم کنین.

با سپاس فراوان


using bebmaxDate;



persianDate FarsiDate = new persianDate(DateTime.Now();




label1.Text = FarsiDate.CompletePrsDate();