您的位置:首页 > 其它

从一个日历程序中寻找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++;
}
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐