📄 main.i
字号:
tian_1 += 30; // 小月为30天
}
}
for (i=1;i<date_set[1];i++)
{
if ( i == 1 || i == 3 || i == 5 || i == 7 || i == 8 || i == 10 || i == 12 )
tian_2 += 31;
else if (i == 2)
{
y_temp = 2000 + (int) date_set[0];
if ((y_temp % 400 == 0) || ((y_temp % 4 == 0) && (y_temp % 100 != 0)))
tian_2 += 29;
else
tian_2 += 28;
}
else
tian_2 += 30;
}
tian = tian + tian_2 - tian_1 + (int)date_set[2] - (int)date[2];
}
else
{
for (i=date_set[0]; i<date[0];i++)
{
y_temp = 2000+(int)i;
if ((y_temp % 400 == 0) || ((y_temp % 4 == 0) && (y_temp % 100 != 0)))
tian += 366;
else
tian += 365;
}
for (i=1;i<date[1];i++)
{
if ( i == 1 || i == 3 || i == 5 || i == 7 || i == 8 || i == 10 || i == 12 )
tian_1 += 31;
else if (i == 2)
{
y_temp = 2000 + (int) date[0];
if ((y_temp % 400 == 0) || ((y_temp % 4 == 0) && (y_temp % 100 != 0)))
tian_1 += 29;
else
tian_1 += 28;
}
else
tian_1 += 30;
}
for (i=1;i<date_set[1];i++)
{
if ( i == 1 || i == 3 || i == 5 || i == 7 || i == 8 || i == 10 || i == 12 )
tian_2 += 31;
else if (i == 2)
{
y_temp = 2000 + (int) date_set[0];
if ((y_temp % 400 == 0) || ((y_temp % 4 == 0) && (y_temp % 100 != 0)))
tian_2 += 29;
else
tian_2 += 28;
}
else
tian_2 += 30;
}
tian = tian + tian_1 - tian_2 + (int)date[2] - (int)date_set[2] + 1;
}
if (tian > 0) // 剩余天数大于0,显示剩余天数
{
dis_buff[8] = (tian % 10);
dis_buff[7] = ((tian / 10) % 10);
dis_buff[6] = ((tian/100) % 10);
if (dis_buff[6] == 0) dis_buff[6] = 12;
if (dis_buff[6] == 12 && dis_buff[7] == 0) dis_buff[7] = 12;
}
else
{
dis_buff[8] = 0; // 小于0则显示全0天
dis_buff[7] = 0;
dis_buff[6] = 0;
}
if ((++return_time >= 10) && (clock_state != 0 ))
{ // 日期、时间设置状态超过10秒无按键设置时,返回正常显示状态
clock_state = 0 ;
set_state = 0;
}
}
else // 按键处理
{
key_temp = read_key(); // 调用按键接口程序
if (key_temp) // 确认有键按下
{
return_time = 0;
if (key_temp == 1 )
{
if (clock_state == 0 )
{
clock_state = 1 ;
set_state = 0;
for (i=0;i<=2;i++)
{ time_set[i] = time[i];}
}
else if (clock_state == 1 && set_state == 0)
{
clock_state = 2 ;
set_state = 0;
for (i=0;i<=2;i++)
{ time_set[i] = date[i];}
}
else if (clock_state == 2 && set_state == 0)
{
clock_state = 0 ;
set_state = 0;
}
}
if (key_temp == 4 && clock_state == 0 )
{
clock_state = 3 ;
set_state = 0;
for (i=0;i<=2;i++)
{ time_set[i] = date_set[i];}
}
if (key_temp == 3 && clock_state != 0 )
{
set_state++;
if ((set_state == 4 || set_state ==5) && (clock_state == 2 || clock_state == 3 ))
{
if (time_set[1] == 0) time_set[1] = 1;
i = time_set[1];
if ( i == 4 || i == 6 || i == 9 || i == 11 )
{
if (!(set_state%2))
{
if (time_set[2] >= 31) time_set[2] = 0; // 以下设置时间调整
}
else
{
if (time_set[2] >= 31) time_set[2] = 30; // 以下设置时间调整
}
}
else if (i == 2)
{
y_temp = 2000 + (int) time_set[0];
if ((y_temp % 400 == 0) || ((y_temp % 4 == 0) && (y_temp % 100 != 0)))
{
if (!(set_state%2))
{
if (time_set[2] >= 30) time_set[2] = 0; // 以下设置时间调整
}
else
{
if (time_set[2] >= 30) time_set[2] = 30; // 以下设置时间调整
}
}
else
{
if (!(set_state%2))
{
if (time_set[2] >= 29) time_set[2] = 0; // 以下设置时间调整
}
else
{
if (time_set[2] >= 29) time_set[2] = 20; // 以下设置时间调整
}
}
}
else
{
if (!(set_state%2))
{
if (time_set[2] >= 32) time_set[2] = 0; // 以下设置时间调整
}
else
{
if (time_set[2] >= 32) time_set[2] = 30; // 以下设置时间调整
}
}
if (time_set[2] == 0) time_set[2] = 1;
}
if (set_state >= 6)
{
if (clock_state == 1 )
rtc_set_time(time_set[0],time_set[1],time_set[2]);
else if (clock_state == 2 )
rtc_set_date(time_set[2],time_set[1],time_set[0]);
else if (clock_state == 3 )
{
e_date_set[0] = time_set[0];
e_date_set[1] = time_set[1];
e_date_set[2] = time_set[2];
date_set[0] = time_set[0];
date_set[1] = time_set[1];
date_set[2] = time_set[2];
}
clock_state = 0 ;
set_state = 0;
}
}
if (key_temp == 2 && clock_state != 0 )
{
if (!(set_state%2))
time_set[set_state/2] += 10;
else
{
if ((time_set[set_state/2] % 10) == 9)
time_set[set_state/2] -= 9;
else
time_set[set_state/2]+=1;
}
if (clock_state == 1 )
{
if (!(set_state%2))
{
if (time_set[0] >= 24) time_set[0] = 0;
}
else
{
if (time_set[0] >= 24) time_set[0] = 20;
}
if (time_set[1] >= 60) time_set[1]-= 60;
if (time_set[2] >= 60) time_set[2]-= 60; // 以下设置时间调整
}
else
{
if (time_set[0] >= 100) time_set[0] -= 100;
if (!(set_state%2))
{
if (time_set[1] >= 13) time_set[1] = 0;
}
else
{
if (time_set[1] >= 13) time_set[1] = 10;
}
if (time_set[1] == 0) time_set[1] = 1;
if (set_state == 4 || set_state == 5)
{
i = time_set[1];
if ( i == 4 || i == 6 || i == 9 || i == 11 )
{
if (!(set_state%2))
{
if (time_set[2] >= 31) time_set[2] = 0; // 以下设置时间调整
}
else
{
if (time_set[2] >= 31) time_set[2] = 30; // 以下设置时间调整
}
}
else if (i == 2)
{
y_temp = 2000 + (int) time_set[0];
if ((y_temp % 400 == 0) || ((y_temp % 4 == 0) && (y_temp % 100 != 0)))
{
if (!(set_state%2))
{
if (time_set[2] >= 30) time_set[2] = 0; // 以下设置时间调整
}
else
{
if (time_set[2] >= 30) time_set[2] = 30; // 以下设置时间调整
}
}
else
{
if (!(set_state%2))
{
if (time_set[2] >= 29) time_set[2] = 0; // 以下设置时间调整
}
else
{
if (time_set[2] >= 29) time_set[2] = 20; // 以下设置时间调整
}
}
}
else
{
if (!(set_state%2))
{
if (time_set[2] >= 32) time_set[2] = 0; // 以下设置时间调整
}
else
{
if (time_set[2] >= 32) time_set[2] = 30; // 以下设置时间调整
}
}
}
}
}
}
}
}
else
{
rtc_get_time(&time[0],&time[1],&time[2]); // 读当前时间
switch (clock_state) // 根据系统不同状态显示不同内容
{
case 0 :
if (time_dis_on)
{
time_to_disbuffer(time);
if (point_on)
dis_buff[9] = 10;
else
dis_buff[9] = 12;
}
else
{
time_to_disbuffer(date);
if (point_on)
dis_buff[9] = 11;
else
dis_buff[9] = 12;
}
break;
case 1 :
time_to_disbuffer(time_set);
dis_buff[9] = 10;
break;
case 2 :
time_to_disbuffer(time_set);
dis_buff[9] = 11;
break;
case 3 :
time_to_disbuffer(time_set);
dis_buff[9] = 11;
break;
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -