用C#写一个日历,不用日历控件,是在button上写的,怎么做? 20
怎么在button上写字呢?因为日期会变,不能先写好,所以现在纠结的是代码中怎么实现在button上写字?...
怎么在button上写字呢?因为日期会变,不能先写好,所以现在纠结的是代码中怎么实现在button上写字?
展开
3个回答
展开全部
写了一个小东西,能够在控制台上输出日历的,你可以尝试更改,使里面的日期显示在Button.Text上
static void Main(string[] args)
{
int year = 2012;
int month = 11;
//定义六行七列数组,一个月最多有六个星期 int[,] daysArray = new int[6,7];
//计算第一周
int firstDayOfWeek = (int)(new DateTime(year, month, 1).DayOfWeek);
daysArray[0, firstDayOfWeek] = 1;
int lastDay = new DateTime(year, month, 1).AddMonths(1).AddDays(-1).Day;
for (int i = 1; i <= lastDay; i++)
{
DateTime dt = new DateTime(year,month,i);
daysArray[GetWeekIndexOfMonth(dt), (int)dt.DayOfWeek] = i;
}
Console.WriteLine(string.Format("{0}年{1}月",year,month));
Console.WriteLine("日\t一\t二\t三\t四\t五\t六");
for (int i = 0; i < 6; i++)
{
for (int j = 0; j < 7; j++)
{
if (daysArray[i, j] != 0)
{
Console.Write(daysArray[i, j]);
}
Console.Write("\t");
}
Console.WriteLine();
}
Console.Read();
}
private static int GetWeekIndexOfMonth(DateTime dt)
{
//如果要判断的日期为1号,则肯定是第一周了
if (dt.Day == 1) return 1;
else
{
//得到本月第一天
DateTime dtStart = new DateTime(dt.Year, dt.Month, 1);
//得到本月第一天是周几
int dayofweek = (int)dtStart.DayOfWeek;
//得到本月的第一周一共有几天
int startWeekDays = 7 - dayofweek;
//如果要判断的日期在第一周范围内,返回1
if (dt.Day <= startWeekDays) return 0;
else
{
int aday = dt.Day + 7 - startWeekDays;
return aday / 7 + (aday % 7 > 0 ? 1 : 0)-1;
}
}
}
static void Main(string[] args)
{
int year = 2012;
int month = 11;
//定义六行七列数组,一个月最多有六个星期 int[,] daysArray = new int[6,7];
//计算第一周
int firstDayOfWeek = (int)(new DateTime(year, month, 1).DayOfWeek);
daysArray[0, firstDayOfWeek] = 1;
int lastDay = new DateTime(year, month, 1).AddMonths(1).AddDays(-1).Day;
for (int i = 1; i <= lastDay; i++)
{
DateTime dt = new DateTime(year,month,i);
daysArray[GetWeekIndexOfMonth(dt), (int)dt.DayOfWeek] = i;
}
Console.WriteLine(string.Format("{0}年{1}月",year,month));
Console.WriteLine("日\t一\t二\t三\t四\t五\t六");
for (int i = 0; i < 6; i++)
{
for (int j = 0; j < 7; j++)
{
if (daysArray[i, j] != 0)
{
Console.Write(daysArray[i, j]);
}
Console.Write("\t");
}
Console.WriteLine();
}
Console.Read();
}
private static int GetWeekIndexOfMonth(DateTime dt)
{
//如果要判断的日期为1号,则肯定是第一周了
if (dt.Day == 1) return 1;
else
{
//得到本月第一天
DateTime dtStart = new DateTime(dt.Year, dt.Month, 1);
//得到本月第一天是周几
int dayofweek = (int)dtStart.DayOfWeek;
//得到本月的第一周一共有几天
int startWeekDays = 7 - dayofweek;
//如果要判断的日期在第一周范围内,返回1
if (dt.Day <= startWeekDays) return 0;
else
{
int aday = dt.Day + 7 - startWeekDays;
return aday / 7 + (aday % 7 > 0 ? 1 : 0)-1;
}
}
}
博思aippt
2024-07-20 广告
2024-07-20 广告
作为深圳市博思云创科技有限公司的工作人员,对于Word文档生成PPT的操作,我们有以下建议:1. 使用另存为功能:在Word中编辑完文档后,点击文件->另存为,选择PowerPoint演示文稿(*.pptx)格式,即可将文档内容转换为PPT...
点击进入详情页
本回答由博思aippt提供
展开全部
方法一:
Date.Year.ToString(),
Date.Month.ToString(),
Date.Day.ToString(),
判断当前是几月,然后在容器中添加相应数目的按钮,按钮的text属性就按照上述赋值,之后就一些重复的步骤了
方法二:
自定义控件或者扩展基本控件的功能(比方说组合容器和按钮,添加相应的属性,使其成为一个类日历控件)
Date.Year.ToString(),
Date.Month.ToString(),
Date.Day.ToString(),
判断当前是几月,然后在容器中添加相应数目的按钮,按钮的text属性就按照上述赋值,之后就一些重复的步骤了
方法二:
自定义控件或者扩展基本控件的功能(比方说组合容器和按钮,添加相应的属性,使其成为一个类日历控件)
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你是想总共一个按钮还是每天一个按钮?
只有一个的话 button1.Text = DateTime.Now.ToString("yyyyMMdd");
每天一个的话,嗯,日历控件的问题在哪?
只有一个的话 button1.Text = DateTime.Now.ToString("yyyyMMdd");
每天一个的话,嗯,日历控件的问题在哪?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询