PDA

View Full Version : مشكل در گرفتن مدت روز باقي مانده از تاريخ ثبت شده



barnamenevisjavan
جمعه 08 اردیبهشت 1391, 21:35 عصر
مشكل در گرفتن مدت روز باقي مانده از تاريخ ثبت شده

سلام من برنامه زير رو نوشتم حالا يه جا موندم نميتونم چيزي بنويسم اول از همه بگم كه اين برنامه اطلاعاتي رو در ديتابيس اكسس ذخيره ميكنه و ادمين ميتونه اونارو ويرايش يا حذف بكنه قسمت ديگش مشاهده اصطعلام اطلاعات روزانست قسمتي هم داره كه با وارد كردن نام كاربري اطلاعات ثبت شده نشون داده ميشه حالا بپردازم به مشكل:
من نميتونم محاسبه كنم كه مثلا فلان كس كه تو تاريخ 1391/2/12 اطلاعاتش ثبت شده و توي ثبت اطلاعات مدت 30 روز وارد شده الان از اين 30 روز چند روز باقي مونده!
به عنوان مثال فرض كنيد شما براي 15 روز مبلغ 2000 تومن رو به من ميديد و من اطلاعات شما رو توي برنامه ثبت ميكنم كه فلاني چقدر پول داد تو تاريخ كي و به مدت فلان روز حالا من ميخوام متوجه بشم كه ازين 15 روز چند روز ديگه باقي مونده يعني با گذشت چند روز بعد وقتي ميام برنامه رو اجرا ميكنم بهم نشون بده از 15 روز چند روز باقي مونده
مشكل دومم اينه كه نميتونم همين كارو بصورت روزانه انجام بدم
يعني وقتي فرم وضعيت روزانه باز ميشه كساني كه تا 3 روز آينده مدت ثبت شدشون داره به پايان ميرسه توي گريد ويو فقط نام كاربريش رو نشون بده و به همرا اين كه چند روز به پايان محلت باقي مونده
همه جاي اين برنامه كار ميكنه و حتي همه چي امادست فقط شما لطف كنيد اين 2 تا مشكل رو برام حل كنيد سورس رو بصورت كامل ضميمه كردم
خواهشا بعد اينكه مشكل رو حل كرديد دوباره برام اپ كنيد
سورس اصليش ويبي بود تبديل زدم به سيشارپ

Alghoochi
شنبه 09 اردیبهشت 1391, 00:25 صبح
عزیز من کد شما رو دانلود نکردم. چون خداییش وقت نداشتم بشینم کد بنویسم. ولی راه‌حل رو بهت توضیح می‌دم خودت زحمت کدشو بکش تا هم یه چیزی یاد بگیری هم اینکه خودت مشکلت رو حل کرده باشی.
در کل شما باید دو تا زمان رو از هم کم کنی. می‌تونی این کار رو با کدهای SQL انجام بدی و می‌تونی با کدهای C#. مثلا فرض کن تاریخی که از بانک خوندی Time1 باشه. حالا می‌خوای بدونی چند رو دیگه از ۳۰ روزش باقی مونده. باید امروز رو از Time1 کم کنی (Time.Now - Time1) که خروجیش از نوع TimeSpan. که راحت می‌تونی روزش رو به دست بیاری. که مثلا شده ۱۰. یعنی ۱۰ روز از این تاریخ گذشته که از ۳۰ کمش کنی می‌شه ۲۰. پس ۱۰ روز مونده.
واسه مشکل دومت هم از امروز ۳ رو کم کن. می‌شه یه تاریخی. اون تاریخ رو به بانکت بفرست و با یه دستور Select ساده می‌تونی اطلاعات رو فیلتر کنی.

Mahmoud.Afrad
شنبه 09 اردیبهشت 1391, 01:03 صبح
در اصلاح پست Alghoochi (http://barnamenevis.org/member.php?105791-Alghoochi) وقتی اختلاف رو بدست بیارید میشه زمان سپری شده.
حالا اگر زمان سپری شده رو از تعداد کل کم کنید میشه تعداد روز باقی مونده که اگر نتیجه صفر یا منفی شد یعنی منقضی شده.

barnamenevisjavan
یک شنبه 17 اردیبهشت 1391, 10:05 صبح
ممنون از كمكتون

hakim22
یک شنبه 17 اردیبهشت 1391, 10:26 صبح
از تابع datediff استفاده کنید و بر حسب هر واحدی (روز، ماه ، سال ، ثانیه ، ساعت ) اختلاف زمانی قابل حساب کردن است.