PDA

View Full Version : بدست آوردن اعداد داخل تکست باکس مثلا 4رقم اول تاریخ مثل 1391/05/05



sadeghlinux
پنج شنبه 05 مرداد 1391, 17:48 عصر
سلام دوستان

سرچ کردم ولی چیزی پیدا نشد

من میخوام که تو تکست باکسم از قبل تاریخ نوشته شده بتونم 4 رقم سال رو بکشم بیرون
مثلا تاربخ برابر1391/05/05 هس من مثلا تو یه متغیر بتونم 1391 رو بریزم!!!

لطفا راهنمایی کنید
اگه نمونه کد دارین بسیار ممنون میشم بزارین

JaVa
پنج شنبه 05 مرداد 1391, 18:55 عصر
سلام و...

فکر کنم منظورت همین باید باشه:




Public Class Form1

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim str As String

str = Mid(TextBox1.Text, 1, 4)
MsgBox(str)

End Sub
End Class

sadeghlinux
پنج شنبه 05 مرداد 1391, 21:22 عصر
دمت گرم خیلی حال داد

منظورم همین بود ببینم که میتونم تو برنامم استفاده کنم

من یه تکست باکس دارم که از یه تابع تاریخ شمسی رو تبدیل و مایش میده
وحالا میخوام بر حسب تاریخ کاربر فقط بتونه سالی 2 بار به مشتری تسهیلات بده
و سال 1392 شد بازم دوبار بتونه تسهیلات بده

با این روش فکر کنم به راحتی بتونم کنترل کنم نظر شما چیه؟

JaVa
جمعه 06 مرداد 1391, 00:28 صبح
دوباره سلام ...


وحالا میخوام بر حسب تاریخ کاربر فقط بتونه سالی 2 بار به مشتری تسهیلات بده
و سال 1392 شد بازم دوبار بتونه تسهیلات بده
با این روش فکر کنم به راحتی بتونم کنترل کنم نظر شما چیه؟

به نظر من این الگوریتم شما یه خورده ایراد داره :لبخندساده:
پس ماه و روز رو می خواید چکار کنید ؟؟؟

راه حل که به ذهن می می رسه استفاده از این تابع است :

DateDiff


که با یه سرچ کوچیک کار کردن باهاش رو یاد می گیری:

M.KH-SH
جمعه 06 مرداد 1391, 01:28 صبح
دوست عزیز اگه شما میخوای به هر کس 2 بار تصحیلات بدی باشه بده حالا باید جوری برنامه رو بنویسی که اول بیاد چک کنه که سال 90 چند تسحیلات گرفته یکی یا 2 تا و بعد بیاد چک کنه که با تاریخ بعدی که بخواد تسحیلات بگیره چقدر مونده


آنالیز:::
شما یک جدول جدا بساز و بر اساس ایدی فرد مورد نظر خود سورت کن

داخل جدول یک فیلد بزار برای تاریخ که تاریخ تصحیلات رو بگیر (همون تاریخ موقع ثبت) بقیه اطلاعات بسته به کار خودت فرق میکنه

خوب حالا کار::::

شما اول باید ببینی که تو سال 90 چند بار تسحیلات گرفته

خوب با یک کوئری خیلی ساده مثل ::: select count(id) from tb_tashilat where id_user=1 و یا select * from tb_tashilat where id_user=1

بعد بیا مدیریت کن ببین که بیشتر از 2 هست یا کمتر اگه کمتر از 2 هستش ایتم نمایش داده شده که بیا ثبت کن و اگه نه بیا ایتم شما 2 رو تاریخ اونو استخراج کن و با استفاده از کد زیر بررسی کن که چند وقت از گرفتن آخرین تسهیلات گذشته

dim t as date=tarikh2
Dim b As Integer=DateDiff(DateInterval.Month,tarikh1, t)

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

**** تاریخ ها رو حتما به میلادی برگردونی که محاسبه درست باشه



خوب حالا با یک شرط ساده متوجه میشی که ایا زیر 6 ماه هست یا بیش از 6 ماه

if b>=6 then
'mojaz be entekhab tashilat mibashad
end if


امیدوارم که منظورت همین بوده باشه

sadeghlinux
جمعه 06 مرداد 1391, 02:23 صبح
دوستان من چجوری میتونم از تو دیتابیس 2 تا تاریخ آخری که مربوط به سال جاری هس رو بردارم؟
اون نمونه ای که جناب M.KH-SH (http://barnamenevis.org/member.php?220554-M.KH-SH) فرمودید تعداد رو برمیگردونه؟ راسنش من متوجه قطعه کد نشدم

اگه بخوام خود تاریخ رو از تو دیتابیس بخونم چیکار باید بکنم؟ بدون استفاده از دیتاگرید!
و مثل تکست باکس فقط سال رو بخونم؟

نمونه مثال ندارین؟



موفق باشین

پروژه پایان ترمم هس و پون تا حالا زیاد با تاربخ گار نکردم نمیدونستم چیکار کنم این راه حل به ذهنم رسید

بازم اگه به مشکلی برخوردم مزاحم میشم

دمتون گرم

sadeghlinux
جمعه 06 مرداد 1391, 18:04 عصر
اگر جدول تسهيلات مجزاست پس شما تعداد دفعات كه به يك نفر تسحيلات ارائه داده شده رو طبق تاريخ و نام يا كد فردي مي تونيد محاسبه كنيد


SELECT COUNT(*) AS Expr1
FROM XTable
WHERE YearField = @Year AND PersonIDField = @PersonID



تو جدول تاریخ با فرمت روز ماه سال ذخیره میشه ، ولی من موقع کنترل فقط میخوام با سال کار کنم این کد همین کارو میکنه؟

M.KH-SH
جمعه 06 مرداد 1391, 18:26 عصر
ذوست عزیز آنالیز برنامه همونی هست که بهت گفتن بالا و توضیح دادم

شما با استفاده از دیتا ست میتونی آیتم هارو خروجی بگیری

کوئری دوست خوبمون تنها مییاد ایتم ها رو میگه چند عدد هستش

شما با فرمت سال آخه به چه صورت میخوای کار کنی؟

مثلا یکی مییاد در تاریخ 1390-12-27 از شما تسهیلات میگیره و دوباره شما میتونی تو تاریخ 1391-01-07 به همون فرد تسهیلات بدی؟

این یعنی یک سال؟

sadeghlinux
جمعه 06 مرداد 1391, 19:10 عصر
اگه بخوام سالی یکبار تسهیلات بدم باید چیکار کنم؟

فقط میخوام بدونم تاریخ 1391/05/06 که تو جدول با این فرمت ذخیره شده و لی من 1391 رو میخوام برای مقایسه، چجوری باید 1391 رو خارج کنم

sadeghlinux
جمعه 06 مرداد 1391, 19:24 عصر
اصلا دوبار نمیخواد

اگه بخوام سالی یکبار تسهیلات بدم فقط به من بگین که از تو جدول چجوری میتونم از 1391/05/06 فقط 1391 رو خارج بکنم؟

M.KH-SH
جمعه 06 مرداد 1391, 23:29 عصر
دوست عزیز از split استفاده کن همونطور که دوسته خوبمون گفتن و اگه هم نه از خود توابع زمان استفاده کن


Dim t As Date = "1391/05/06"
Me.Text = t.Year

هرچند که تنها سال نباید ملاک باشه چون حتی یک سال به ساعت ها و ثانیه ها وابسته هستش و نه صرفا به 4 رقم اول