PDA

View Full Version : سوال در مورد تاریخ



black_shadow
جمعه 18 دی 1394, 15:32 عصر
سلام من تازه کارم و برای یادگیریه بیشتر طبق توصیه یکی از دوستان دارم از پروژه رضا رستوران تقلید میکنم و جز به جز خودم کد مینویسم که یاد بگیرم

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

دوم اینکه چطور میتونم تاریخ شمسی بگیرم با توجه به اینکه تاریخ میلادی هست؟
این عکس برنامه اصلی

http://uupload.ir/files/qc6m_date_time.jpg (http://uupload.ir/)

اینم عکس برنامه خودم
http://uupload.ir/files/revf_data_time2.jpg (http://uupload.ir/)
اینم از کد های من
تو قسمت فرم نوشتم

private void defult_Load(object sender, EventArgs e)
{
DateTime time;
time = DateTime.Now;
lblتایم.Text =time.Hour+":"+time.Minute + ":" + time.Second.ToString();
lblتاریخ.Text = time.Year + "\\" + time.Month + "\\" + time.Day+"\\"+time.DayOfWeek;

}

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

amin8505
جمعه 18 دی 1394, 16:33 عصر
واسه زمان باید یه تایمر به برنامت اضافه کنی و خاصیت Interval اون رو برابر 1000 میلی ثانیه قرار بدی و این کد رو داخل رویداد Timer_Tick بزاری.

private void timer1_Tick(object sender, EventArgs e)
{
lblتایم.Text =time.Hour.ToString("00")+":"+time.Minute.ToString("00") + ":"+ time.Second.ToString("00");
}

ToString("00") برای این که مثلا دقیقه 8 رو به صورت 08 نشون بده.

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

black_shadow
جمعه 18 دی 1394, 17:52 عصر
داداش اینم کد ولی ارور میده میگه نمیتونه کانورت کنه

private void timer1_Tick(object sender, EventArgs e)
{
DateTime time;
time = DateTime.Now;
lblتایم = time.Hour.ToString("00") + ":" + time.Minute.ToString("00") + ":" + time.Second.ToString("00");
}
اینم ارورش

Error 1 Cannot implicitly convert type 'string' to 'System.Windows.Forms.Label'

amin8505
جمعه 18 دی 1394, 18:08 عصر
خط آخز را باید این شکلی بنویسی

lblتایم.Text = time.Hour.ToString("00") + ":" + time.Minute.ToString("00") + ":" + time.Second.ToString("00");

black_shadow
جمعه 18 دی 1394, 18:13 عصر
داداش کجاشو اشتباه کردم میشه بگین من نتونستم بفهمم

black_shadow
جمعه 18 دی 1394, 18:18 عصر
داداش فهمیدم
دادا بعد این که برنامم اجرا میشه این تایمر دیر شروع میکنه به کار کردن واسه همین میخوام تو فرم لود بذارم ولی اررور میده هرچه قدم } پاک میکنم یا اضافی میکنم باز درست نمیشه

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;


namespace resturan
{
public partial class defult : Form
{
public defult()
{
InitializeComponent();
}


private void defult_Load(object sender, EventArgs e)
{
/* DateTime time;
time = DateTime.Now;
lblتایم.Text =time.Hour+":"+time.Minute + ":" + time.Second.ToString();
lblتاریخ.Text = time.Year + "\\" + time.Month + "\\" + time.Day+"\\"+time.DayOfWeek;
*/
private void timer1_Tick(object sender, EventArgs e)
{
DateTime time;
time = DateTime.Now;
lblتایم.Text = time.Hour.ToString("00") + ":" + time.Minute.ToString("00") + ":" + time.Second.ToString("00");
}










}
}


Error 1 'resturan.defult.defult_Load(object, System.EventArgs)' must declare a body because it is not marked abstract, extern, or partial

این ارور یعنی چی؟

amin8505
جمعه 18 دی 1394, 18:50 عصر
اقا خیلی ببخشید. یادم رفت بهت بگم
باید در فرم لود Timer رو استارت کنی.
Timer1.Start();

black_shadow
جمعه 18 دی 1394, 19:11 عصر
داداش باز ارور میده

Error 1 'resturan.defult.timer1_Tick(object, System.EventArgs)' is a 'method', which is not valid in the given context

اینم کد کامل




namespace resturan
{
public partial class defult : Form
{
public defult()
{
InitializeComponent();
}

private void defult_Load(object sender, EventArgs e)
{
DateTime date;
date = DateTime.Now;
lblتاریخ.Text = date.Year.ToString("0000") + "\\" + date.Month.ToString("00") + "\\" + date.Day.ToString("00") + "\\" + date.DayOfWeek.ToString();


timer1_Tick.start();

}

private void timer1_Tick(object sender, EventArgs e)
{
DateTime time;
time = DateTime.Now;
lblتایم.Text = time.Hour.ToString("00") + ":" + time.Minute.ToString("00") + ":" + time.Second.ToString("00");
}
}
}

amin8505
جمعه 18 دی 1394, 19:31 عصر
کدت رو این شکلی بنویس


private void defult_Load(object sender, EventArgs e)
{

timer1.Start();
}
private void timer1_Tick(object sender, EventArgs e)
{
DateTime time;
time = DateTime.Now;
lblتایم.Text = time.Hour.ToString("00") + ":" + time.Minute.ToString("00") + ":" + time.Second.ToString("00");
}

black_shadow
جمعه 18 دی 1394, 19:36 عصر
داداش کار نمیکنه اینم ارور


Error 1 'System.Windows.Forms.Timer' does not contain a definition for 'start' and no extension method 'start' accepting a first argument of type 'System.Windows.Forms.Timer' could be found (are you missing a using directive or an assembly reference?)

اینم کد کامل


namespace resturan
{
public partial class defult : Form
{
public defult()
{
InitializeComponent();
}

private void defult_Load(object sender, EventArgs e)
{
DateTime date;
date = DateTime.Now;
lblتاریخ.Text = date.Year.ToString("0000") + "\\" + date.Month.ToString("00") + "\\" + date.Day.ToString("00") + "\\" + date.DayOfWeek.ToString();


timer1.Start();
}
private void timer1_Tick(object sender, EventArgs e)
{
DateTime time;
time = DateTime.Now;
lblتایم.Text = time.Hour.ToString("00") + ":" + time.Minute.ToString("00") + ":" + time.Second.ToString("00");
}
}
}

black_shadow
جمعه 18 دی 1394, 19:56 عصر
یه سوال دیگه هم دارم
من تو نت سرچ کردم واسه تقویم شمسی
نوشته بود اینو اضافه کنین
using System.Globalization;

سوالم اینه که من از کجا بدونم این هدر چه پارامتر هایی داره و چه کلاسهایی داره
که گفته اینوری استفاده کنین
PersianCalendar PC = new PersianCalendar();
string taghvim = PC.GetYear(DateTime.Now) + "/" + PC.GetMonth(DateTime.Now) + "/" + PC.GetDayOfMonth(DateTime.Now)+"/"+PC.GetDayOfWeek(DateTime.Now);
lblتاریخ.Text = taghvim;

amin8505
جمعه 18 دی 1394, 20:54 عصر
داداش کار نمیکنه اینم ارور


Error 1 'System.Windows.Forms.Timer' does not contain a definition for 'start' and no extension method 'start' accepting a first argument of type 'System.Windows.Forms.Timer' could be found (are you missing a using directive or an assembly reference?)

این کد رو به قسمت using اضافه کن.
using System.Timers;

black_shadow
جمعه 18 دی 1394, 23:18 عصر
یه سوال دیگه هم دارم
من تو نت سرچ کردم واسه تقویم شمسی
نوشته بود اینو اضافه کنین
using System.Globalization;

سوالم اینه که من از کجا بدونم این هدر چه پارامتر هایی داره و چه کلاسهایی داره
که گفته اینوری استفاده کنین
PersianCalendar PC = new PersianCalendar();
string taghvim = PC.GetYear(DateTime.Now) + "/" + PC.GetMonth(DateTime.Now) + "/" + PC.GetDayOfMonth(DateTime.Now)+"/"+PC.GetDayOfWeek(DateTime.Now);
lblتاریخ.Text = taghvim;

کسی نیست اینو واسم توضیح بده؟

محمد آشتیانی
شنبه 19 دی 1394, 08:40 صبح
سلام
برای اینکه بدونید در هر اسمبلی چه کلاس ها و متد هایی وجود داره باید مستنداتش رو بخونید ، برای اسمبلی های مایکروسافتی به سایت MSDN رجوع کنید (راحت تر اینه که در موردش در گوگل جستجو انجام بدید)

ضمن اینکه بنده یک مسئله ای در کد های شما دیدم ، سعی کنید اسم کنترل ها ، متغیر ها و ... رو فارسی و ترکیب فارسی-انگلیسی انتخاب نکنید ، مثل:
lblتاریخ

که به این صورت باشه بهتره
lblDate