菜鸟、小易——求助:谁能帮我写一个实现日历的C#程序让我看看啊! 题目要求是这个样子的:编写一个程序,根据输入的年份和月份,输出月历 月历的格式就是那种我们最常见的格式,上面一排是星期,下面是日期,我想看看是怎么写的,求高手指导下,谢谢!菜鸟、小易感激不尽!! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace wuliaowanwan{ public class PrintCalendar { static void Main(String[] args) { Console.WriteLine("******************欢 迎 使 用 万 年 历******************"); Console.Write("\n请选择年份: "); int year = int.Parse(Console.ReadLine()); Console.Write("\n请选择月份: "); int month = int.Parse(Console.ReadLine()); int days = 0; // 存储当月的天数 bool isRn; /* 判断是否是闰年 */ if (year % 4 == 0 && !(year % 100 == 0) || year % 400 == 0) { // 判断是否为闰年 isRn = true; // 闰年 } else { isRn = false;// 平年 } /* 计算输入的年份之前的天数 */ int totalDays = 0; for (int i = 1900; i < year; i++) { /* 判断闰年或平年,并进行天数累加 */ if (i % 4 == 0 && !(i % 100 == 0) || i % 400 == 0) { // 判断是否为闰年 totalDays = totalDays + 366; // 闰年366天 } else { totalDays = totalDays + 365; // 平年365天 } } /* 计算输入月份之前的天数 */ int beforeDays = 0; for (int i = 1; i <= month; i++) { switch (i) { case 1: case 3: case 5: case 7: case 8: case 10: case 12: days = 31; break; case 2: if (isRn) { days = 29; } else { days = 28; } break; default: days = 30; break; } if (i < month) { beforeDays = beforeDays + days; } } totalDays = totalDays + beforeDays; // 距离1900年1月1日的天数 /* 计算星期几 */ int firstDayOfMonth; // 存储当月第一天是星期几:星期日为0,星期一~星期六为1~6 int temp = 1 + totalDays % 7; // 从1900年1月1日推算 if (temp == 7) { // 求当月第一天 firstDayOfMonth = 0; // 周日 } else { firstDayOfMonth = temp; } /* 输出日历 */ Console.WriteLine("星期日\t星期一\t星期二\t星期三\t星期四\t星期五\t星期六"); for (int nullNo = 0; nullNo < firstDayOfMonth; nullNo++) { Console.Write("\t"); // 输出空格 } for (int i = 1; i <= days; i++) { Console.Write(i + "\t"); if ((totalDays + i - 1) % 7 == 5) { // 如果当天为周六,输出换行 Console.WriteLine(); } } Console.Read(); } } }我自己搜到了,给大家分享下吧,哈哈,自作多情下……………… 我正在写这个...wait for a mement Console.WriteLine("*******{0}************","Welcome"); Console.WriteLine("Please input the year:"); String tempy = Console.ReadLine(); Console.WriteLine("Please input the month:"); String tempm = Console.ReadLine(); Int32 year, month; if (!Int32.TryParse(tempy, out year) || !Int32.TryParse(tempm, out month)) return; Int32 days = DateTime.DaysInMonth(year, month); Int32 i = (Int32)(new DateTime(year, month, 1).DayOfWeek); Console.WriteLine("Su".PadLeft(5) + "Mo".PadLeft(5) + "Tu".PadLeft(5) + "We".PadLeft(5) + "Th".PadLeft(5) + "Fr".PadLeft(5) + "Sa".PadLeft(5)); Int32 size = 0; Int32 k = 0; while (k < i) { Console.Write("".PadLeft(5)); k++; size++; } for (Int32 j = 1; j < days; j++) { Console.Write(j.ToString().PadLeft(5)); size++; if (size % 7 == 0) Console.WriteLine(); } Console.WriteLine(); winform中datagridview控件合并单元格的问题 关于数据类型的菜鸟问题 如何提取应用软件界面上的datagrid里的数据 多条件组合查询的 where 条件怎么写最方便最有效率 pop3 新邮件数目如何取?求个办法 求能同时运行VS2003 2005 sql2000 sql2005的台式电脑配置和价格! 做购物网站一般需要哪些数据表? c#数组按什么方式传递,值还是引用? 百分求助关于使用代理的问题 c#矩形框截取显示 如何进去窗体退出的代码区域? 这个AutomationElement怎么给他发送点击事件?
using System.Collections.Generic;
using System.Linq;
using System.Text;namespace wuliaowanwan
{
public class PrintCalendar
{ static void Main(String[] args)
{
Console.WriteLine("******************欢 迎 使 用 万 年 历******************");
Console.Write("\n请选择年份: ");
int year = int.Parse(Console.ReadLine());
Console.Write("\n请选择月份: ");
int month = int.Parse(Console.ReadLine()); int days = 0; // 存储当月的天数
bool isRn;
/* 判断是否是闰年 */
if (year % 4 == 0 && !(year % 100 == 0) || year % 400 == 0)
{ // 判断是否为闰年
isRn = true; // 闰年
}
else
{
isRn = false;// 平年
} /* 计算输入的年份之前的天数 */
int totalDays = 0;
for (int i = 1900; i < year; i++)
{
/* 判断闰年或平年,并进行天数累加 */
if (i % 4 == 0 && !(i % 100 == 0) || i % 400 == 0)
{ // 判断是否为闰年
totalDays = totalDays + 366; // 闰年366天
}
else
{
totalDays = totalDays + 365; // 平年365天
}
} /* 计算输入月份之前的天数 */
int beforeDays = 0;
for (int i = 1; i <= month; i++)
{
switch (i)
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
days = 31;
break;
case 2:
if (isRn)
{
days = 29;
}
else
{
days = 28;
}
break;
default:
days = 30;
break;
}
if (i < month)
{
beforeDays = beforeDays + days;
}
}
totalDays = totalDays + beforeDays; // 距离1900年1月1日的天数 /* 计算星期几 */
int firstDayOfMonth; // 存储当月第一天是星期几:星期日为0,星期一~星期六为1~6
int temp = 1 + totalDays % 7; // 从1900年1月1日推算
if (temp == 7)
{ // 求当月第一天
firstDayOfMonth = 0; // 周日
}
else
{
firstDayOfMonth = temp;
} /* 输出日历 */
Console.WriteLine("星期日\t星期一\t星期二\t星期三\t星期四\t星期五\t星期六");
for (int nullNo = 0; nullNo < firstDayOfMonth; nullNo++)
{
Console.Write("\t"); // 输出空格
}
for (int i = 1; i <= days; i++)
{
Console.Write(i + "\t");
if ((totalDays + i - 1) % 7 == 5)
{ // 如果当天为周六,输出换行
Console.WriteLine();
}
}
Console.Read();
}
}
}
我自己搜到了,给大家分享下吧,哈哈,自作多情下………………
Console.WriteLine("*******{0}************","Welcome");
Console.WriteLine("Please input the year:");
String tempy = Console.ReadLine();
Console.WriteLine("Please input the month:");
String tempm = Console.ReadLine();
Int32 year, month; if (!Int32.TryParse(tempy, out year) || !Int32.TryParse(tempm, out month))
return; Int32 days = DateTime.DaysInMonth(year, month);
Int32 i = (Int32)(new DateTime(year, month, 1).DayOfWeek); Console.WriteLine("Su".PadLeft(5) + "Mo".PadLeft(5) + "Tu".PadLeft(5) + "We".PadLeft(5) + "Th".PadLeft(5) + "Fr".PadLeft(5) + "Sa".PadLeft(5)); Int32 size = 0;
Int32 k = 0;
while (k < i)
{
Console.Write("".PadLeft(5));
k++;
size++;
}
for (Int32 j = 1; j < days; j++)
{
Console.Write(j.ToString().PadLeft(5));
size++;
if (size % 7 == 0)
Console.WriteLine();
}
Console.WriteLine();