一.日历算法和展示内容
基于展示内容来启用的算法。
(1)什么时候换行
你可以选择周六换行,或者周日换行。我选择的是周天:
怎么判断它是不是周天:首先要知道这个月的第一天是周几,然后之后的天数是n+这个周几,如果是7的倍数则换行。
(2)每个月第一天是星期几,前面都要空格
2022年:y=22; 21世纪:c=20 d是你要找的是第几天,因为我要找的是这个月第一天所以是1.
之后算出来w%7,余数就是周几了。
//获取某天是星期几返回值(0-7)
int getWeekDay(int m)
{
//计算星期几的固定公式,Y是年D是这个日期在本年的天数
//w=y+[y/4]+[c/4]-2c+[26(m+1)/10]+d-1
int y=22,c=20,d=1;
if(m==1 || m==2){
y=21;
m=m+12;
}
int temp = y+(y/4)+(c/4)-2*c+(26*(m+1)/10)+d-1;
return temp%7;
}
(3)怎么空格和间距
这个看个人强迫症程度。不累述。
(4) 写日历和展示日历
我选择是写一个字符串,然后将字符串存入一个txt里,这样方便之后我的功能再改写。
展示日历用getc一个个print出来,因为在