从一个日历程序中寻找bcb时间函数及ComboBox的一个方法
2010-01-14 09:21
399 查看
int y = YearOf(Date());
int m = MonthOf(Date());
TDateTime dtFirst = EncodeDate(year, month, 1);
int week = DayOfWeek(dtFirst);
week -= 1;
int daySum = DayOfTheMonth(EndOfTheMonth(dtFirst));
注:
Date()获取日期
YearOf()获取某日的年份
MonthOf()获取某日的月份
EncodeDate()获取某年某月第N天是系统时间的第几天(1900年1月1日为第一天);
DayOfWeek()获取一周中的第几天,这里第一天是星期日,所以如果要让星期一为第一天,那么week -= 1;
EndOfTheMonth()获取某月的最后一天;
DayOfTheMonth()获取某日为当月的第几天;
补充一个方法:
ComboBox->Items->IndexOf(string);
设置string在ComboBox中的索引值;
日历源码:
/*
功能:计算日历中每个单元个的天数
*/
void _fastcall TMain::ShowCalendar(int year, int month)
{
TDateTime dtFirst = EncodeDate(year, month, 1);
int week = DayOfWeek(dtFirst);
week -= 1;
int daySum = DayOfTheMonth(EndOfTheMonth(dtFirst));
int day = 1;
for (int i = 1; i < 7; i++)
{
for (int j = 0; j < 7; j++)
{
if ((i - 1) * 7 + j < week || (i - 1) * 7 + j >= daySum + week)
{
sgCalendar->Cells[j][i] = "";
}
else
{
sgCalendar->Cells[j][i] = IntToStr(day);
if (EncodeDate(year, month, day) == Date())
{
sgCalendar->Row = i;
sgCalendar->Col = j;
}
day++;
}
}
}
}
int m = MonthOf(Date());
TDateTime dtFirst = EncodeDate(year, month, 1);
int week = DayOfWeek(dtFirst);
week -= 1;
int daySum = DayOfTheMonth(EndOfTheMonth(dtFirst));
注:
Date()获取日期
YearOf()获取某日的年份
MonthOf()获取某日的月份
EncodeDate()获取某年某月第N天是系统时间的第几天(1900年1月1日为第一天);
DayOfWeek()获取一周中的第几天,这里第一天是星期日,所以如果要让星期一为第一天,那么week -= 1;
EndOfTheMonth()获取某月的最后一天;
DayOfTheMonth()获取某日为当月的第几天;
补充一个方法:
ComboBox->Items->IndexOf(string);
设置string在ComboBox中的索引值;
日历源码:
/*
功能:计算日历中每个单元个的天数
*/
void _fastcall TMain::ShowCalendar(int year, int month)
{
TDateTime dtFirst = EncodeDate(year, month, 1);
int week = DayOfWeek(dtFirst);
week -= 1;
int daySum = DayOfTheMonth(EndOfTheMonth(dtFirst));
int day = 1;
for (int i = 1; i < 7; i++)
{
for (int j = 0; j < 7; j++)
{
if ((i - 1) * 7 + j < week || (i - 1) * 7 + j >= daySum + week)
{
sgCalendar->Cells[j][i] = "";
}
else
{
sgCalendar->Cells[j][i] = IntToStr(day);
if (EncodeDate(year, month, day) == Date())
{
sgCalendar->Row = i;
sgCalendar->Col = j;
}
day++;
}
}
}
}
相关文章推荐
- js代码定时执行一个方法,延迟一定时间后执行一个函数
- 判断ShellExecute函数是否执行完一个程序的方法
- 关于一个Java时间函数的转换方法
- delegate() 方法为指定的元素(属于被选元素的子元素)添加一个或多个事件处理程序,并规定当这些事件发生时运行的函数。 使用 delegate() 方法的事件处理程序适用于当前或未来的元素(比如
- 判断ShellExecute函数是否执行完一个程序的方法
- jquery delegate() 方法为指定的元素(属于被选元素的子元素)添加一个或多个事件处理程序,并规定当这些事件发生时运行的函数
- 编写查找一个单链表特定元素的程序。分别使用递归和非递归方法实现,并比较它们的运行时间。
- Linux下计算程序运行时间的一个简单方法
- debounce函数让一个方法在一定时间内只能执行一次
- 写的一个获取 某程序 运行所需时间的函数: 用到了abstract, final等
- 计算程序运行的时间一个函数
- Golang记录、计算函数执行耗时、运行时间的一个简单方法
- 在内核代码包中寻找一个函数的,结构体等的定义的方法
- 花了半天时间写了一个方法很笨的“记住密码”的程序
- 一个web程序寻找路径的特殊方法
- Linux下计算程序运行时间的一个简单方法
- 介绍一个计算函数执行时间的简单方法!
- off() 方法 与 unbind() 方法移除绑定事件的处理程序。one()函数用于为每个匹配元素的一个或多个事件绑定一次性事件处理函数
- 一定间隔时间下重复执行一个函数的几个方法
- 判断ShellExecute函数是否执行完一个程序的方法