بدست آوردن جمع ارقام ماه تولد میلادی ، شمسی و ... در یک حلقه با ورود اطلاعات
سلام
من اطلاعات یه کارمند رو با یه حلقه for توی خروجی از کاربر می گیرم ، میخوام همزمان هم جمع ماه تولد میلادی و ماه های معادل اون با چندتا تقویم دیگه رو با هم جمع کنم و بعدا توی برنامه از این مقدار استفاده کنم .
کد زیر رو نوشتم
class Employee
{
public int ID, Tel;
public string Name, Family;
public DateTime Born;
}
static void Main(string[] args)
{
Employee em = new Employee();
Console.Write("Number of employee?");
int num = int.Parse(Console.ReadLine());
int[] A = new int[num];
for (int i = 0; i < num; i++)
{
Console.Write("Name?");
em.Name = Console.ReadLine();
Console.Write("Family?");
em.Family = Console.ReadLine();
Console.Write("ID?");
em.ID = int.Parse(Console.ReadLine());
Console.Write("Phone?");
em.Tel = int.Parse(Console.ReadLine());
Console.Write("Date of born?");
em.Born = DateTime.Parse(Console.ReadLine());
A[i] = persianMounth + em.Born.Month + hijriMonth ;
}
foreach (var item in A)
{
Console.WriteLine(item);
}
}
حالا مشکل اینه که کدهای مربوط به تقویم رو کجا بذارم ؟
اگه قبل از for بذارم ، چون هنوز اطلاعات وارد نشده که تاریخی باشه برای تبدیل و ارور میده
اگه بعد از for بذارم ، تاریخ هایی که میخوام جمع کنم ناشناخته هستن
اگه داخل حلقه هم بذارم که نمیشه چون توی کل برنامه میخوام ازشون استفاده کنم
چه راهی رو پبشنهاد می کنید ؟
PersianCalendar pcal = new PersianCalendar();
int persianMounth = pcal.GetMonth(em.Born);
HijriCalendar hcal = new HijriCalendar();
int hijriMonth = hcal.GetMonth(em.Born);
متشکرم
نقل قول: بدست آوردن جمع ارقام ماه تولد میلادی ، شمسی و ... در یک حلقه با ورود اطلاعات
درست نفهمیدم اما واسه چیزی که فهمیدم دو راه است. شما میتونی مقادیر را داخل حلقه بگیری و بدی به متغیرهایی که قبل حلقه تعریفش کردی و بعد که حلقه تمام شد محاسبات را روی مقادیر نگهداری شده در اون متغیرها انجام بدی. یا اینکه باز یکسری متغیر قبل حلقه تعریف کنی و محاسبات را درون حلقه بکنب و جواب محاسبات را بدی به اون متغیرها و بعد از حلقه از مقادیر داخل متغیرهات استفاده کنی.
نقل قول: بدست آوردن جمع ارقام ماه تولد میلادی ، شمسی و ... در یک حلقه با ورود اطلاعات
ممنون از توجهتون
من میخوام جمع ماه تولد رو به شمسی و قمری و میلادی برای هر فرد داشته باشم و توی برنامه برای مقایسه نیاز دارم بهش ، این روشی رو که خودم نوشتم اگر به جای مثلا خط زیر
A[i] = persianMounth + em.Born.Month + hijriMonth ;
بنویسم
A[i] = em.Born.Year + em.Born.Month + em.Born.Day ;
جواب میده . اگر این خط رو بیرون از حلقه بذارم یا با یه حلقه جدا بنویسمش فقط برای نفر آخری که اطلاعات رو وارد می کنم جواب رو بر می گردونه
اگر منظور شما رو درست متوجه شده باشم ، گفتید متغیر ها رو قبل از حلقه تعریف کنم ، خوب متغیرهای من میشن همین قطعه کد دوم که هرجا بذارمش ایراد می گیره ، اطلاعات رو هم درون حلقه می گیرم .
میشه توضیحتون را با یه مثال برام بذارید ، متشکرم
نقل قول: بدست آوردن جمع ارقام ماه تولد میلادی ، شمسی و ... در یک حلقه با ورود اطلاعات
میتونی یک datatable با چندتا ستون قبل حلقه تعریف کنی بعد توی حلقه هربار یک سطر بهش add کنی. البته اگر هر نفر علاوه بر این مجموع باید داده های دیگه هم داشته باشه مثلا نام و نام خانوادگی اگر نه فقط یک مقدار عددی است میتونی از List استفاده کنی و هربار بهش یک عضو Add کنی
نقل قول: بدست آوردن جمع ارقام ماه تولد میلادی ، شمسی و ... در یک حلقه با ورود اطلاعات
من نمیخوام از دیتابیس استفاده کنم ، برای ذخیره داده هام از لیست استفاده می کنم
List<Employee> lst = new List<Employee>();
و با یه دستور Add تمام مقادیر کلاس رو داخلش ذخیره می کنم
lst.Add(em);
مشکل من بیشتر اینه که کدهای تقویم رو کجا بذارم ؟
و دوم اینکه بعدش چجوری از این مقدار بدست اومده ، توی برنامه استفاده کنم ؟
ممنون از وقتی که گذاشتید