PDA

View Full Version : جمع تاریخ و تبدیل تاریخ



masih_enter
سه شنبه 13 مهر 1389, 02:53 صبح
سلام دوستان
من یک سری رشته دارم مثل این "2010-05-23" حالا میخوام این شته رو تبدیل به تاریخ کنم و ببینم اگر مثلا 60 روز بهش اضافه کنم چه روزی در میاد و با تاریخ فعلی سیستم مقایسه کنم ببینم تاریخ گذشته یا نه هنوز مونده تا این تاریخ برسه و دوباره تاریخ جدید رو به رشته تبدیل کنم .
الان چندین ساعت هست دارم سرچ میکنم ولی کمترین راهنمایی نمیبینم جایی
چطور میشه به تاریخ تبدیل کرد و 60 روز هم بهش اضافه کرد ؟

xminxmin
سه شنبه 13 مهر 1389, 07:47 صبح
من یک سری رشته دارم مثل این "2010-05-23" حالا میخوام این شته رو تبدیل به تاریخ کنم
از CDate استفاده کن

x as Date = CDate("23-05-2010")

برای کار با تاریخ شمسی هم از کامپاننت هایی که در همین انجمن وجود داره استفاده کن. همه این کارایی که می خوای رو می تونی باهاشون انجام بدی. یه جستجوی کوچیک می خواد.

Saman_12
سه شنبه 13 مهر 1389, 13:46 عصر
این برای تبدیل چند رشته به یک تاریخ :

MsgBox(New Date(2010, 5, 11))
اینم برای اظافه کردن :

Dim NDate As Date = New Date(2010, 5, 11)

NDate = NDate.AddDays(60)
MsgBox(NDate)

برای کار با تاریخ شمسی هم از کامپاننت هایی که در همین انجمن وجود داره استفاده کن. همه این کارایی که می خوای رو می تونی باهاشون انجام بدی. یه جستجوی کوچیک می خواد.
من با حرف شما کاملا مخالفم اگه قصد یاد گیری باشه بهتره آدم بدونه که کد های درون اون کامپونت چی کار میکنن و بتونه اونا رو تجزیه و تحلیل کنیه بعد هم اون هار به کار ببره حالا اگه کسی این کد هار بلده و فقط جهت صرفه جویی در وقت می خواد از کامپونت آماده استفاده کنه اون دیگه یک به خودش مربوطه!

masih_enter
سه شنبه 13 مهر 1389, 20:02 عصر
مرسی ولی من هر کاری میکنم نمیشه
هر راهی هم که فکر بکنید انجام دادم
تو بعضی از فیلد ها خوب کار میکنه ولی بعضی ها رو درست کار نمیکنه
و میگه نمیشه این رو به تاریخ تبدیل کرد .
چه کنم ؟
احتمال داره اس کیو ال سرور 2005 خراب باشه ؟

این رو با این کد تبدیل به نوع جدید کردم "2010-10-23"


Dim activedate As String
activedate = Replace(sqlcreditsread.GetString(2).ToString, "-", "/")



Dim todate As Date = Format(Today, "dd/MM/yyyy")
Dim efectivedate As Date
efectivedate = CDate(activedate) اینجا بعضی وقتها ارر میده بعضی وقت ها هم کار میکنه .


.


به نظر شما چه کار کنم ؟ تا حالا این قدر گیر نکرده بودم تو ای اس پی

masih_enter
پنج شنبه 15 مهر 1389, 13:45 عصر
دوستان کسی نظری نداره ؟
من هرچی میگردم نمیتونم به جایی برسم .
رو یه سری از رکورد ها درست کار میکنه ولی یه سری رو میگه نمیشه تبدیل کرد
لطفا کمک کنید

ali_najari
پنج شنبه 15 مهر 1389, 15:11 عصر
دوست عزيز جوابت رو كه دادن پس باز مشكل كجاست؟

از تابع Cdate واسه تبديل استفاده ميكني و براي اضافه كردن روز هم از تابع AddDays استفاده كني مشكلت حل ميشه!

بگيد مشكل كجاست تا راهنمايي كنم

masih_enter
پنج شنبه 15 مهر 1389, 18:44 عصر
دوست عزيز جوابت رو كه دادن پس باز مشكل كجاست؟

از تابع Cdate واسه تبديل استفاده ميكني و براي اضافه كردن روز هم از تابع AddDays استفاده كني مشكلت حل ميشه!

بگيد مشكل كجاست تا راهنمايي كنم


سلام
مشکل من اینه با اس کیو ال ریدر چند رکورد رو از پایگاه میخونم و تو یه استرینگ میریزم و اون رو به تاریخ با سی دیت تبدیل میکنم .ولی مشکل اینجاست که بعضی وقتها کامل خونده میشه و تبدیل به تاریخ میکنه ولی رو بعضی از رکورد ها ارر میده و میگه این رشته نمیتونه به تاریخ تبدیل بشه .
کلا به بخش add date هم نمیرسم
کدی هم که مصرف میکنم همینه

ali_najari
جمعه 16 مهر 1389, 00:58 صبح
شاید اون فیلد خالی هست یا اینکه فرمت ذخیره سازی درست نبوده
حتما اطلاعات توی بانک رو چک کنید

masih_enter
جمعه 16 مهر 1389, 01:04 صبح
شاید اون فیلد خالی هست یا اینکه فرمت ذخیره سازی درست نبوده
حتما اطلاعات توی بانک رو چک کنید

یه سوال
دو تا برنامه این فیلد ها رو وارد پایگاه میکنند .
حالا اگر فرض بگیریم یکی از برنامه ها با فرمت تاریخ ذخیره میکنه .
مگر وقتی من اون رو ریختم درون یک متغیر استرینگ اون تبدیل به رشته نمیشه ؟
خوب حالا که میخوام این رشته رو تبدیل کنم گیر میده
در حالی که اگر عدد رو دستی تست کنم مشکلیب نداره رو بعضی از یلد ها هم مشکلی نداره .
فکر کنم این از اون مشکلاتی باشه که هیچ وقت براش جوابی پیدا نمیشه .
بهر حال ممنون

MEhdi Sobhani
جمعه 16 مهر 1389, 02:32 صبح
فکر کنم این از اون مشکلاتی باشه که هیچ وقت براش جوابی پیدا نمیشه .
بهر حال ممنون
سلام
اما من فکر کنم احتمالا از اون مشکلاتی باشه که یه نکته خیلی کوچیک و ساده داره و یه دفعه حل میشه .

وقتی ارور میده همونجا موس رو بیار روی رشته تا مقدار رشته رو نشون بده یا موقع خطا تو پنجره immediate اسم متغیر رو تایپ کن تا مقدارش رو نشون بده ، احتمالا متوجه اشکال میشی .
گاهی ممکنه مثلا اول رشته کد 13 یا تب یا ... باشه که با نگاه کردن به مقدارهای پایگاه ممکنه متوجه اونها نشی ولی این طوری بهتر متوجه اونها هم میشی و طول رشته رو هم میتونی چک کنی و ...
موفق باشی

masih_enter
جمعه 16 مهر 1389, 16:40 عصر
من سه تست انجام دادم و دیدم کلا خیلی کارش عجیبه

این کد خطا میده



Protected Sub Button4_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Button4.Click
Dim a As New Date
a = CDate("28/09/2010")

End Sub



حالا اگر شما فقط 28/09/2010 رو به 04/10/2010 برای مثال تغیر بدید مشکلی نداره
ایا تو برنامه شما هم این مشکل وجود داره ؟ از چه ورژنی استفاده میکنید ؟