سلام خدمت دوستان...
کسی میتونه کمک کنه که یه تقویم شبیه تقویم دیواری نوشت ... این طور که سال شمسی رو از کاربر بگیره و تقویم اون سال رو چاپ کنه ...
جون هرکی دوست دارین کمک کنید
ممنون
سلام خدمت دوستان...
کسی میتونه کمک کنه که یه تقویم شبیه تقویم دیواری نوشت ... این طور که سال شمسی رو از کاربر بگیره و تقویم اون سال رو چاپ کنه ...
جون هرکی دوست دارین کمک کنید
ممنون
از پرژه های قدیمی هست که استادا میدادن اگر اینجوری باشه احتمال داره که شما نیاز به کد C یا C++ یا چیزهایی مثل این داشته باشید اینجا هم تالار C# هست که معمولا به صورت ویژوال هست در ضمن خود C# از نسخه دو به بعد persiancalender داره پس دیگه مشکل نباید داشته باشید.
ببین کار را تقسیم کن به واحدهای کوچکتر فکر می خواهی تقویم یک ماه را نشان بدهی خوب شما یک ماتریسن 7 در 6 باید داشته باشی برای هر ماه
من یک کد نوشتم تو فرم یک باتن بگذار این کد را توش کپی کن و ببین فکر کنم ایده خوبی به شما بده.
شما یک ماتریسن داری برای هر ماه 7در 6 روز اول ماه را می توانی پیدا کنی که چند شنبه هست. و تعداد روزها در ماه هم می توانی بدست بیاوری حالا با 2تا دستور for می توانی این ماتریس را پرکنی ، برای چاپ کردن فرم هم دستان باز هست که با GDI+ هر کار خواستی بکنی
public Form1()
{
InitializeComponent();
}
privatevoid button1_Click(object sender, EventArgs e)
{
PersianCalendar pc = newPersianCalendar();
int[,] Month = newint[6, 7];
int Y, M = 0;
int DaysInMonth = 0;
int FirstDayOfMoth = 0;
Y = 1387;//int.Parse(textBox1.Text);
M = 1;//int.Parse(textBox2.Text);
DaysInMonth = pc.GetDaysInMonth(Y, M);
FirstDayOfMoth = ((int)pc.GetDayOfWeek(pc.ToDateTime(Y, M, 1, 0, 0, 0, 0)) + 1) % 7;//first day in persiancalendar
//this.Text = DaysInMonth.ToString() + "-" + FirstDayOfMoth.ToString();
int days = 0;
for (int row = 0; row <= 5; row++)
{
for (int col = 0; col <= 6; col++)
{
if (row == 0 & col < FirstDayOfMoth)
{
Month[row, col] = -1;
}
else
{
days += 1;
Month[row, col] = days;
}
if (days > DaysInMonth) Month[row, col] = -1;
}
}
////
Graphics g = this.CreateGraphics();
Brush br;
br = newSolidBrush(Color.Red);
g.Clear(this.BackColor);
for (int row = 0; row <= 5; row++)
{
for (int col = 0; col <= 6; col++)
{
if (Month[row, col] != -1)
g.DrawString(Month[row, col].ToString(), this.Font, br, col * 30 + 200, row * 30 + 200);
}
}
از کمکتون خیلی خیلی ممنونم .....
ولی می خواستم بگم که من تازه C# رو شروع کردم ....قبلاً java script می نوشتم و زیاد وارد نیستم....
من برنامه رو console application میخواستم ......امکانش هست؟؟؟
اینم یسری سورس که پیدا کردم ...
آخرین ویرایش به وسیله komsboy_more : یک شنبه 11 فروردین 1387 در 17:03 عصر
از این کنترل اسفاده کن.
خودم تویه تمام برنامه هام از این تقویم استفاده می کنم.
این DLL رو در toolbox ,add کن
تا درست کردن ماتریس که مشکلی نیست موقع نمایشش شما باید با console.writeکار کنید
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Globalization;
namespace consolMonth
{
classProgram
{
staticvoid Main(string[] args)
{
PersianCalendar pc = newPersianCalendar();
int[,] Month = newint[6, 7];
int Y, M = 0;
int DaysInMonth = 0;
int FirstDayOfMoth = 0;
Console.WriteLine("Enter shamsi Year:");
Y =int.Parse( Console.ReadLine());
Console.WriteLine("Enter shamsi Month:");
M =int.Parse (Console.ReadLine());
//Y = 1387;//int.Parse(textBox1.Text);
//M = 1;//int.Parse(textBox2.Text);
DaysInMonth = pc.GetDaysInMonth(Y, M);
FirstDayOfMoth = ((int)pc.GetDayOfWeek(pc.ToDateTime(Y, M, 1, 0, 0, 0, 0)) + 1) % 7;//first day in persiancalendar
//this.Text = DaysInMonth.ToString() + "-" + FirstDayOfMoth.ToString();
int days = 0;
for (int row = 0; row <= 5; row++)
{
for (int col = 0; col <= 6; col++)
{
if (row == 0 & col < FirstDayOfMoth)
{
Month[row, col] = -1;
}
else
{
days += 1;
Month[row, col] = days;
}
if (days > DaysInMonth) Month[row, col] = -1;
}
}
for (int row = 0; row <= 5; row++)
{
for (int col = 0; col <= 6; col++)
{
if (Month[row, col] != -1)
{
// g.DrawString(Month[row, col].ToString(), this.Font, br, col * 30 + 200, row * 30 + 200);
Console.Write("{0}\t", Month[row, col]);
}
elseConsole.Write("\t");
}
Console.Write("\n");
}
Console.Read();
}
}
}
آخرین ویرایش به وسیله linux : یک شنبه 11 فروردین 1387 در 17:29 عصر
با ماتریس مشکلی ندارم ....
دقیقاً منظورتونو متوجه نشدم : (((من یک کد نوشتم تو فرم یک باتن بگذار این کد را توش کپی کن ))) باتن؟؟؟ من console app می خواستم!
(((روز اول ماه را می توانی پیدا کنی که چند شنبه هست))) چه جوری؟
(((تعداد روزها در ماه هم می توانی بدست بیاوری حالا با 2تا دستور for می توانی این ماتریس را پرکنی ، برای چاپ کردن فرم هم دستان باز هست که با GDI+ هر کار خواستی بکنی))) اگه میشه کده کامل رو بنویسید ...
شرمنده انقدر اذیت می کنم ..... زیاد حالیم نیست
آخرین ویرایش به وسیله komsboy_more : یک شنبه 11 فروردین 1387 در 17:25 عصر
قفل مخفی تلگرام، واتس اپ و همه برنامه ها - قفل حرفه ای برای دستگاه اندرویدی شما - با امکان مخفی شدن و جلوگیری از Unisntall شدن
--آموزش ایجاد برنامه های چند زبانه در WPF
-BeRMOoDA File Encrypter-open source-using WPF, C# and MVVM Pattern
-نمونه برنامه ساده و کامل با الگوی MVVM برای کار با دیتابیس با استفاده از Entity Framework در WPF
-WPFMessageBox فارسی/انگلیسی - با قابلیت تغییر Skin
من فکر می کنم اگر یک کتاب آموزش گام به گام بخونی بهتر باشه تا اینکه انتظار داشته باشی کسی اینجا واست تمرین درسی حل کنه.
خوش باشی.
خوب ، شما یک پروژه از نوع console application درست کن و کد زیر را توش کپی کن
بعد اجرا کن یک جا ازت سال را می خواهد و بعدش ماه را.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Globalization;
namespace consolMonth
{
classProgram
{
staticvoid Main(string[] args)
{
PersianCalendar pc = newPersianCalendar();
int[,] Month = newint[6, 7];
int Y, M = 0;
int DaysInMonth = 0;
int FirstDayOfMoth = 0;
Console.WriteLine("Enter shamsi Year:");
Y =int.Parse( Console.ReadLine());
Console.WriteLine("Enter shamsi Month:");
M =int.Parse (Console.ReadLine());
//Y = 1387;//int.Parse(textBox1.Text);
//M = 1;//int.Parse(textBox2.Text);
DaysInMonth = pc.GetDaysInMonth(Y, M);
FirstDayOfMoth = ((int)pc.GetDayOfWeek(pc.ToDateTime(Y, M, 1, 0, 0, 0, 0)) + 1) % 7;//first day in persiancalendar
//this.Text = DaysInMonth.ToString() + "-" + FirstDayOfMoth.ToString();
int days = 0;
for (int row = 0; row <= 5; row++)
{
for (int col = 0; col <= 6; col++)
{
if (row == 0 & col < FirstDayOfMoth)
{
Month[row, col] = -1;
}
else
{
days += 1;
Month[row, col] = days;
}
if (days > DaysInMonth) Month[row, col] = -1;
}
}
for (int row = 0; row <= 5; row++)
{
for (int col = 0; col <= 6; col++)
{
if (Month[row, col] != -1)
{
// g.DrawString(Month[row, col].ToString(), this.Font, br, col * 30 + 200, row * 30 + 200);
Console.Write("{0}\t", Month[row, col]);
}
elseConsole.Write("\t");
}
Console.Write("\n");
}
Console.Read();
}
}
}
خیلی خیلی ممنون فقط یه سوال داشتم ....
این System.Linq فکر میکنم تحت C# 3.0 باشه یعنی Visual Studio 2008 ......
معادل در 2005 داره ؟ .....یا باید تحت 2008 بنویسم؟؟؟
فکر می کنم معادلش System .Query باشه ..... به این جا یه سری زدم :
http://forums.microsoft.com/MSDN/Sho...73951&SiteID=1
آخرین ویرایش به وسیله komsboy_more : دوشنبه 12 فروردین 1387 در 23:30 عصر
u dont need System.Linq on the upper codes
so u can use it on VS 2005
just remove that line
قفل مخفی تلگرام، واتس اپ و همه برنامه ها - قفل حرفه ای برای دستگاه اندرویدی شما - با امکان مخفی شدن و جلوگیری از Unisntall شدن
--آموزش ایجاد برنامه های چند زبانه در WPF
-BeRMOoDA File Encrypter-open source-using WPF, C# and MVVM Pattern
-نمونه برنامه ساده و کامل با الگوی MVVM برای کار با دیتابیس با استفاده از Entity Framework در WPF
-WPFMessageBox فارسی/انگلیسی - با قابلیت تغییر Skin
آقا خیلی ممنون ..... من یکم برنامه رو تغییر دادم که به جای اینکه ماه شمسی رو هم از کاربر بگیره و از طریق حلقه اونو تغییر بده ....
با تشکر فراوان از دوستان مخصوصاً LINUX
این کدیه که linux نوشته :
اینم کده خودم:
using System;
using System.Collections.Generic;
using System.Text;
using System.Globalization;
namespace Persian_Yearly_Calendar
{
class Program
{
static void Main(string[] args)
{
PersianCalendar pc = new PersianCalendar();
int[,] Month = new int[6, 7];
int Y, M = 0;
int DaysInMonth = 0;
int FirstDayOfMoth = 0;
int days = 0;
Console.WriteLine("Enter shamsi Year:");
Y = int.Parse(Console.ReadLine());
Console.WriteLine("Enter shamsi Month:");
M = int.Parse(Console.ReadLine());
//Y = 1387;//int.Parse(textBox1.Text);
//M = 1;//int.Parse(textBox2.Text);
DaysInMonth = pc.GetDaysInMonth(Y, M);
//first day in persian calendar
FirstDayOfMoth = ((int)pc.GetDayOfWeek(pc.ToDateTime(Y, M, 1, 0, 0, 0, 0)) + 1) % 7;
//this.Text = DaysInMonth.ToString() + "-" + FirstDayOfMoth.ToString();
for (int row = 0; row <= 5; row++)
{
for (int col = 0; col <= 6; col++)
{
if (row == 0 & col < FirstDayOfMoth)
{
Month[row, col] = -1;
}
else
{
days += 1;
Month[row, col] = days;
}
if (days > DaysInMonth) Month[row, col] = -1;
}
}
for (int row = 0; row <= 5; row++)
{
for (int col = 0; col <= 6; col++)
{
if (Month[row, col] != -1)
{
// g.DrawString(Month[row, col].ToString(), this.Font, br, col * 30 + 200, row * 30 + 200);
Console.Write("{0}\t", Month[row, col]);
}
else
Console.Write("\t");
}
Console.Write("\n");
}
Console.Read();
}
}
}
using System;
using System.Collections.Generic;
using System.Text;
using System.Globalization;
namespace Persian_Yearly_Calendar
{
class Program
{
public static void Main(string[] args)
{
int[,] Month = new int[6, 7];
int Y, M = 0;
int DaysInMonth = 0;
int FirstDayOfMonth = 0;
int days = 0;
Console.WriteLine("--------------------Jalali Calendar--------------------\n");
Console.WriteLine("Enter Jalali Year:");
Y = int.Parse(Console.ReadLine());
Console.WriteLine("");
Console.WriteLine("You Entered : {0}.", Y);
Console.WriteLine("");
Console.WriteLine("Please Enter A Key To See Calendar of {0}.", Y);
Console.Read();
if (Y >= 1)
{
for (int count = 1; count <= 12; days = 0, count++)
{
M = count;
switch (count)
{
case 1:
Console.WriteLine("////////////////////////-//////////////////////////\n");
Console.WriteLine("---------------------Farvardin---------------------");
break;
case 2:
Console.WriteLine("////////////////////////-//////////////////////////\n");
Console.WriteLine("--------------------Ordibehesht--------------------");
break;
case 3:
Console.WriteLine("////////////////////////-//////////////////////////\n");
Console.WriteLine("----------------------Khordad----------------------");
break;
case 4:
Console.WriteLine("////////////////////////-//////////////////////////\n");
Console.WriteLine("------------------------Tir------------------------");
break;
case 5:
Console.WriteLine("////////////////////////-//////////////////////////\n");
Console.WriteLine("-----------------------Mordad----------------------");
break;
case 6:
Console.WriteLine("////////////////////////-//////////////////////////\n");
Console.WriteLine("---------------------Shahrivar---------------------");
break;
case 7:
Console.WriteLine("////////////////////////-//////////////////////////\n");
Console.WriteLine("------------------------Mehr-----------------------");
break;
case 8:
Console.WriteLine("////////////////////////-//////////////////////////\n");
Console.WriteLine("------------------------Aban-----------------------");
break;
case 9:
Console.WriteLine("////////////////////////-//////////////////////////\n");
Console.WriteLine("------------------------Azar-----------------------");
break;
case 10:
Console.WriteLine("////////////////////////-//////////////////////////\n");
Console.WriteLine("------------------------Dey------------------------");
break;
case 11:
Console.WriteLine("////////////////////////-//////////////////////////\n");
Console.WriteLine("-----------------------Bahman----------------------");
break;
case 12:
Console.WriteLine("////////////////////////-//////////////////////////\n");
Console.WriteLine("-----------------------Esfand----------------------");
break;
default:
break;
}
Console.WriteLine("Shanbe/1Shanbe/2Shanbe/3Shanbe/4Shanbe/5Shanbe/Jome");
PersianCalendar pc = new PersianCalendar();
//Y = 1387;//int.Parse(textBox1.Text);
//M = 1;//int.Parse(textBox2.Text);
DaysInMonth = pc.GetDaysInMonth(Y, M);
//first day in persian calendar
FirstDayOfMonth = ((int)pc.GetDayOfWeek(pc.ToDateTime(Y, M, 1, 0, 0, 0, 0)) + 1) % 7;
//this.Text = DaysInMonth.ToString() + "-" + FirstDayOfMoth.ToString();
for (int row = 0; row <= 5; row++)
{
for (int col = 0; col <= 6; col++)
{
if (row == 0 & col < FirstDayOfMonth)
{
Month[row, col] = -1;
}
else
{
days += 1;
Month[row, col] = days;
}
if (days > DaysInMonth)
{
Month[row, col] = -1;
}
}
}
for (int row = 0; row <= 5; row++)
{
for (int col = 0; col <= 6; col++)
{
if (Month[row, col] != -1)
{
// g.DrawString(Month[row, col].ToString(), this.Font, br, col * 30 + 200, row * 30 + 200);
Console.Write("{0}\t", Month[row, col]);
}
else
Console.Write("\t");
}
Console.Write("\n");
}
}
Console.WriteLine("Please Enter A Key To Close The Window.");
Console.Read();
}
else
{
Console.WriteLine("Your Entered Jalali Year Is Not Valid.");
Console.WriteLine("Please Enter A Key To Close The Window.");
Console.Read();
}
}
}
}
آخرین ویرایش به وسیله komsboy_more : چهارشنبه 14 فروردین 1387 در 19:16 عصر
آقا ما این جوری نوشتیم ....... منظوره شما چه جوریه .....؟ ..... می تونی کدش رو بزاری من منظورتونو متوجه شم؟؟؟
using System;
using System.Collections.Generic;
using System.Text;
using System.Globalization;
// This source code is writen by Linux and komsboy_more
// Project name: Persian(Jalali) Yearly Calendar
namespace Persian_Yearly_Calendar
{
class Program
{
static void Main(string[] args)
{
PersianCalendar pc = new PersianCalendar();
DateTime thisDate = DateTime.Now;
int[,] Month = new int[6, 7];
int Y, M = 0;
int DaysInMonth = 0;
int FirstDayOfMonth = 0;
int days = 0;
Console.WriteLine("--------------------Persian Calendar--------------------\n");
Console.WriteLine("Today is {0:dddd}, {0}\n", thisDate);
Console.WriteLine("Max Supported Date Time = {0:G}", pc.MaxSupportedDateTime);
Console.WriteLine("Min Supported Date Time = {0:G}\n", pc.MinSupportedDateTime);
Console.WriteLine("Enter Persian Year:");
Y = int.Parse(Console.ReadLine());
Console.WriteLine("");
if (Y >= 622 && Y <= 9999)
{
Console.WriteLine("You Entered: {0}.\n", Y);
Console.WriteLine("Today in Persian Calendar: {0}, {1}, {2}\n", pc.GetYear(thisDate), pc.GetMonth(thisDate), pc.GetDayOfMonth(thisDate));
Console.WriteLine("Today info in Persian Calendar:\n");
Console.WriteLine("Day Of Month: day = {0}", pc.GetDayOfMonth(thisDate));
Console.WriteLine("Day Of Week: day = {0}", pc.GetDayOfWeek(thisDate));
Console.WriteLine("Day Of Year: day = {0}", pc.GetDayOfYear(thisDate));
Console.WriteLine("Days In Month: days = {0}", pc.GetDaysInMonth(thisDate.Year, thisDate.Month, PersianCalendar.PersianEra));
Console.WriteLine("Days In Year: days = {0}", pc.GetDaysInYear(thisDate.Year, PersianCalendar.PersianEra));
Console.WriteLine("Era: era = {0}", pc.GetEra(thisDate));
Console.WriteLine("Leap Month: leap month (if any) = {0}", pc.GetLeapMonth(thisDate.Year, PersianCalendar.PersianEra));
Console.WriteLine("Month: month = {0}", pc.GetMonth(thisDate));
Console.WriteLine("Months In Year: months in a year = {0}", pc.GetMonthsInYear(thisDate.Year, PersianCalendar.PersianEra));
Console.WriteLine("Year: year = {0}", pc.GetYear(thisDate));
Console.WriteLine("Is Leap Day: This is a leap day = {0}", pc.IsLeapDay(thisDate.Year, thisDate.Month, thisDate.Day, PersianCalendar.PersianEra));
Console.WriteLine("Is Leap Month: This is a leap month = {0}\n", pc.IsLeapMonth(thisDate.Year, thisDate.Month, PersianCalendar.PersianEra));
Console.WriteLine("Please Enter \"Enter\" Key To See Calendar of {0}.", Y);
Console.Read();
}
if (Y >= 622 && Y <= 9999)
{
for (int count = 1; count <= 12; days = 0, count++)
{
M = count;
switch (count)
{
case 1:
Console.WriteLine("///////////////////////////////////////////////////\n");
Console.WriteLine("---------------------Farvardin---------------------");
break;
case 2:
Console.WriteLine("///////////////////////////////////////////////////\n");
Console.WriteLine("--------------------Ordibehesht--------------------");
break;
case 3:
Console.WriteLine("///////////////////////////////////////////////////\n");
Console.WriteLine("----------------------Khordad----------------------");
break;
case 4:
Console.WriteLine("///////////////////////////////////////////////////\n");
Console.WriteLine("------------------------Tir------------------------");
break;
case 5:
Console.WriteLine("///////////////////////////////////////////////////\n");
Console.WriteLine("-----------------------Mordad----------------------");
break;
case 6:
Console.WriteLine("///////////////////////////////////////////////////\n");
Console.WriteLine("---------------------Shahrivar---------------------");
break;
case 7:
Console.WriteLine("///////////////////////////////////////////////////\n");
Console.WriteLine("------------------------Mehr-----------------------");
break;
case 8:
Console.WriteLine("///////////////////////////////////////////////////\n");
Console.WriteLine("------------------------Aban-----------------------");
break;
case 9:
Console.WriteLine("///////////////////////////////////////////////////\n");
Console.WriteLine("------------------------Azar-----------------------");
break;
case 10:
Console.WriteLine("///////////////////////////////////////////////////\n");
Console.WriteLine("------------------------Day------------------------");
break;
case 11:
Console.WriteLine("///////////////////////////////////////////////////\n");
Console.WriteLine("-----------------------Bahman----------------------");
break;
case 12:
Console.WriteLine("///////////////////////////////////////////////////\n");
Console.WriteLine("-----------------------Esfand----------------------");
break;
default:
break;
}
Console.WriteLine("Shanbe/1Shanbe/2Shanbe/3Shanbe/4Shanbe/5Shanbe/Jome");
//Y = 1387;//int.Parse(textBox1.Text);
//M = 1;//int.Parse(textBox2.Text);
DaysInMonth = pc.GetDaysInMonth(Y, M);
//first day in persian calendar
FirstDayOfMonth = ((int)pc.GetDayOfWeek(pc.ToDateTime(Y, M, 1, 0, 0, 0, 0)) + 1) % 7;
//this.Text = DaysInMonth.ToString() + "-" + FirstDayOfMoth.ToString();
for (int row = 0; row <= 5; row++)
{
for (int col = 0; col <= 6; col++)
{
if (row == 0 & col < FirstDayOfMonth)
{
Month[row, col] = -1;
}
else
{
days += 1;
Month[row, col] = days;
}
if (days > DaysInMonth)
{
Month[row, col] = -1;
}
}
}
for (int row = 0; row <= 5; row++)
{
for (int col = 0; col <= 6; col++)
{
if (Month[row, col] != -1)
{
// g.DrawString(Month[row, col].ToString(), this.Font, br, col * 30 + 200, row * 30 + 200);
Console.Write("{0}\t", Month[row, col]);
}
else
Console.Write("\t");
}
Console.Write("\n");
}
}
Console.WriteLine("Please Enter \"Enter\" Key To Close The Window.");
Console.Read();
}
else
{
Console.WriteLine("Your Entered Persian Year Is Not Valid.");
Console.WriteLine("Please Enter \"Enter\" Key To Close The Window.");
Console.Read();
}
}
}
}
آخرین ویرایش به وسیله komsboy_more : یک شنبه 01 اردیبهشت 1387 در 10:53 صبح