从一个日历程序中寻找bcb时间函数及ComboBox的一个方法

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++;
            }
        }
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值