数码资讯
js编写一天简单的日历效果{实现代码}
我一直想用Javascript编写日历,但没有什么好主意,所以我没有尝试。最近,我看到了一个简单的日历示例,它是用Javascript写在Internet上的。虽然代码量不大,但我对js日历的实现原理感觉很好,我也试着去做,而且已经收获了很多。掌握基本的实现原理后,我想添加更多的功能,这样我就可以自
选购提示
关注价格、性能、续航、售后和真实使用场景,理性比较后再下单。
我一直想用Javascript编写日历,但没有什么好主意,所以我没有尝试。最近,我看到了一个简单的日历示例,它是用Javascript写在Internet上的。虽然代码量不大,但我对js日历的实现原理感觉很好,我也试着去做,而且已经收获了很多。掌握基本的实现原理后,我想添加更多的功能,这样我就可以自由发挥了。我想先和你分享一下,如果你喜欢,试试看。
1。表行数
现在我们想显示日期表单,首先需要知道表有多少行和列,并且已经确定了列的数目。从星期日(星期日至星期六日历首),共7列。为了之前的行数问题的解决,也需要知道这个月的第一天是星期几,因为每个月的1号是不是所有的日历从星期日开始排,5月1日在星期五,星期六左右,数1的左半部分,你必须使用空表代替。多少空的形式代替在这里我们用getday()方法。此方法返回的数组{ 0-6 }数,0代表星期日,1代表星期一,2代表星期二,等等。所以,如果1个月是星期五,那么5空的形式是需要更换的左边。然后,如果一个月有31天,表最后得到的数:
无功tr_nums = Math.ceil((5 + 31)/ 7);
当然,不是每个月都是31天,所以我们要创建一个12个月的数组,每个月代表的是每天的天数。但是二月是特别的,二月的闰年有29天,二月的平均年只有28天。所以,在你创建一个数组之前,你必须创建一个函数来判断闰年。
如果当前年份可被4整除,但不能被100整除或可被400整除,则可以将其定义为闰年,返回1,否则返回0。
功能IsLeap(年){
返回年份% 4=0(年% 100)!= 01:(年份% = 400 = 01:0:0);
}
然后,我们创建一个数组的月份:
无功days_per_month =新的阵列(31, 28 + IsLeap(年),31, 30, 31,30, 31, 31,30, 31, 30,31);
这将确保一年或闰年计算出正确的天数,下面的代码用于获取今天的相关信息:
var =新的(日期)/获取当前日期。
Y = today.getfullyear(), / /得到一年的日期
M = today.getmonth(), / /在月日(注:每月从0开始计算从1月值小于正常值)
a today.getdate(), / /一天的日期(在方便的形式建立了一天的日期)
哈尔滨新=日期(Y,M,1), / /获得这个月的第一天
firstday.getday DayOfWeek =(),本周判断的第一天(返回{ 0-6 },0代表1代表星期日、星期一,等等)
days_per_month =新(31阵,28 + IsLeap(Y),31, 30, 31,30, 31, 31,30, 31, 30,31), / /创建数组的月
因此,您最终可以得到您需要的月份表的行数:
var = math.ceil(str_nums(DayOfWeek + days_per_month {米}) / / / 7);日期表所需的行数
两。打印日历表
表本身是一个二维数组,所以让主运行两个循环来完成它,代码如下所示:
为(i = 0;i < str_nums;i = 1){ / /循环创造TR标签的第一层
document.write('');
for(k = 0;k<7;K ++)for for循环以创建TD标记
var idx = 7 *我+ K; / /创建每个表的索引,从0开始
var date = IDX -周+ 1; / /月、周、1号
/做其他事情
}
document.write('');
}
三。附上完整的js日历代码
确定当前年份是闰年(闰年二月至二月有29天,只有28天)
功能IsLeap(年){
返回年份% 4=0(年% 100)!= 01:(年份% = 400 = 01:0:0);
}
变量I,
今天=新(日期)/获取当前日期。
Y = today.getfullyear(), / /得到一年的日期
M = today.getmonth(), / /在月日(注:每月从0开始计算从1月值小于正常值)
a today.getdate(), / /一天的日期(在方便的形式建立了一天的日期)
哈尔滨新=日期(Y,M,1), / /获得这个月的第一天
firstday.getday DayOfWeek =(),本周判断的第一天(返回{ 0-6 },0代表1代表星期日、星期一,等等)
days_per_month =新(31阵,28 + IsLeap(Y),31, 30, 31,30, 31, 31,30, 31, 30,31), / /创建数组的月
str_nums = math.ceil((周+ days_per_month {米}) / / / 7);日期表所需的行数
document.write(123456); / /打印表格的第一行(显示周)
为(i = 0;i < str_nums;i = 1){ / /二维数组的创建日期表
document.write('');
对于(k=0;k<7;k +){
var idx = 7 *我+ K; / /创建每个表的索引,从0开始
var date = IDX -周+ 1; / /月、周、1号
(日期days_per_month {米})日期:日期== IDX -周+ 1; / /指数小于或等于或大于0个月的一个空的形式而不是最大值
日期= D(document.write +日期+ '(' '):document.write +日期+ '); / /突出的一天
}
document.write('');
}
document.write('');
CSS部分你的自由发挥,目前的时间是2016年5月2日,结果如下:
以上js是在同一天写的,简单日历的效果。{萧边}是实现代码共享你的全部内容。我希望能给你一个参考,我希望你会得到很多支持。
1。表行数
现在我们想显示日期表单,首先需要知道表有多少行和列,并且已经确定了列的数目。从星期日(星期日至星期六日历首),共7列。为了之前的行数问题的解决,也需要知道这个月的第一天是星期几,因为每个月的1号是不是所有的日历从星期日开始排,5月1日在星期五,星期六左右,数1的左半部分,你必须使用空表代替。多少空的形式代替在这里我们用getday()方法。此方法返回的数组{ 0-6 }数,0代表星期日,1代表星期一,2代表星期二,等等。所以,如果1个月是星期五,那么5空的形式是需要更换的左边。然后,如果一个月有31天,表最后得到的数:
无功tr_nums = Math.ceil((5 + 31)/ 7);
当然,不是每个月都是31天,所以我们要创建一个12个月的数组,每个月代表的是每天的天数。但是二月是特别的,二月的闰年有29天,二月的平均年只有28天。所以,在你创建一个数组之前,你必须创建一个函数来判断闰年。
如果当前年份可被4整除,但不能被100整除或可被400整除,则可以将其定义为闰年,返回1,否则返回0。
功能IsLeap(年){
返回年份% 4=0(年% 100)!= 01:(年份% = 400 = 01:0:0);
}
然后,我们创建一个数组的月份:
无功days_per_month =新的阵列(31, 28 + IsLeap(年),31, 30, 31,30, 31, 31,30, 31, 30,31);
这将确保一年或闰年计算出正确的天数,下面的代码用于获取今天的相关信息:
var =新的(日期)/获取当前日期。
Y = today.getfullyear(), / /得到一年的日期
M = today.getmonth(), / /在月日(注:每月从0开始计算从1月值小于正常值)
a today.getdate(), / /一天的日期(在方便的形式建立了一天的日期)
哈尔滨新=日期(Y,M,1), / /获得这个月的第一天
firstday.getday DayOfWeek =(),本周判断的第一天(返回{ 0-6 },0代表1代表星期日、星期一,等等)
days_per_month =新(31阵,28 + IsLeap(Y),31, 30, 31,30, 31, 31,30, 31, 30,31), / /创建数组的月
因此,您最终可以得到您需要的月份表的行数:
var = math.ceil(str_nums(DayOfWeek + days_per_month {米}) / / / 7);日期表所需的行数
两。打印日历表
表本身是一个二维数组,所以让主运行两个循环来完成它,代码如下所示:
为(i = 0;i < str_nums;i = 1){ / /循环创造TR标签的第一层
document.write('');
for(k = 0;k<7;K ++)for for循环以创建TD标记
var idx = 7 *我+ K; / /创建每个表的索引,从0开始
var date = IDX -周+ 1; / /月、周、1号
/做其他事情
}
document.write('');
}
三。附上完整的js日历代码
确定当前年份是闰年(闰年二月至二月有29天,只有28天)
功能IsLeap(年){
返回年份% 4=0(年% 100)!= 01:(年份% = 400 = 01:0:0);
}
变量I,
今天=新(日期)/获取当前日期。
Y = today.getfullyear(), / /得到一年的日期
M = today.getmonth(), / /在月日(注:每月从0开始计算从1月值小于正常值)
a today.getdate(), / /一天的日期(在方便的形式建立了一天的日期)
哈尔滨新=日期(Y,M,1), / /获得这个月的第一天
firstday.getday DayOfWeek =(),本周判断的第一天(返回{ 0-6 },0代表1代表星期日、星期一,等等)
days_per_month =新(31阵,28 + IsLeap(Y),31, 30, 31,30, 31, 31,30, 31, 30,31), / /创建数组的月
str_nums = math.ceil((周+ days_per_month {米}) / / / 7);日期表所需的行数
document.write(123456); / /打印表格的第一行(显示周)
为(i = 0;i < str_nums;i = 1){ / /二维数组的创建日期表
document.write('');
对于(k=0;k<7;k +){
var idx = 7 *我+ K; / /创建每个表的索引,从0开始
var date = IDX -周+ 1; / /月、周、1号
(日期days_per_month {米})日期:日期== IDX -周+ 1; / /指数小于或等于或大于0个月的一个空的形式而不是最大值
日期= D(document.write +日期+ '(' '):document.write +日期+ '); / /突出的一天
}
document.write('');
}
document.write('');
CSS部分你的自由发挥,目前的时间是2016年5月2日,结果如下:
以上js是在同一天写的,简单日历的效果。{萧边}是实现代码共享你的全部内容。我希望能给你一个参考,我希望你会得到很多支持。
声明:本文内容用于数码产品信息整理与选购参考,具体价格、库存、售后政策以官方渠道和电商页面实时信息为准。