八百年一次,这个七月有5个礼拜五,5个礼拜六,5个礼拜天(js Date对象练习良好方案)[原]

简介: 今早看园友的文章八百年一次……,心想到底是不是八百年一遇,就用js自己验证了一下; 园友判断有5个礼拜五,5个礼拜六,5个礼拜天的方法: 1:该月必须有31天 2:该月1号必须是星期5. (我的判断是最后一天是星期天,求最后一天是为了方便判断这个月有的天数)         ...

今早看园友的文章八百年一次……,心想到底是不是八百年一遇,就用js自己验证了一下;

园友判断有5个礼拜五,5个礼拜六,5个礼拜天的方法:
1:该月必须有31天

2:该月1号必须是星期5. (我的判断是最后一天是星期天,求最后一天是为了方便判断这个月有的天数)

     < script >
        
// move back one month
         function  prevMonth(thisMonth, thisYear) {
            
if  (thisMonth  ==   1 ) {
                thisM 
=   12 ;
                thisY 
=  (thisYear  -   1 );
            }
            
else  {
                thisM 
=  (thisMonth  -   1 );
                thisY 
=  thisYear;
            }
        }

        
// move forward one month
         function  nextMonth(thisMonth, thisYear) {
            
if  (thisMonth  ==   12 ) {
                thisM 
=   1 ;
                thisY 
=  (thisYear  +   1 )
            }
            
else  {
                thisM 
=  (thisMonth  +   1 );
                thisY 
=  thisYear;
            }
        }
        
// 转化为短的日期格式
         function  toShortDate(date) {
            
var  dateStr  =  date.getFullYear()  +   " - "   +  (date.getMonth()  +   1 +   " - "   +  date.getDate();
            
return  dateStr;
        }

        
var  dtNow  =   new  Date();
        
var  thisM  =  dtNow.getMonth() + 1 ;
        
var  thisY  =  dtNow.getFullYear();
        
var  arrayRecord  =  [];
        
while  (thisY  >=   1900 ) {
            prevMonth(thisM, thisY);
            
var  lastDayOfPrevMonth  =   new  Date(thisY, thisM,  0 );
            
if  (lastDayOfPrevMonth.getDay()  ==   0   &&  lastDayOfPrevMonth.getDate()  ==   31 ) {
                arrayRecord.push(toShortDate(lastDayOfPrevMonth));
            }
        }

        document.write(arrayRecord.join(
" \r " ));
    
< / script>

先前一次七月份有五个周五,五个周六,五个周天是:

2005-7

 

 感谢你留言,转载请声明出处(http://www.cnblogs.com/flowerszhong/)。 

 

 

相关文章
|
18天前
|
存储 JavaScript 索引
js开发:请解释什么是ES6的Map和Set,以及它们与普通对象和数组的区别。
ES6引入了Map和Set数据结构。Map的键可以是任意类型且有序,与对象的字符串或符号键不同;Set存储唯一值,无重复。两者皆可迭代,支持for...of循环。Map有get、set、has、delete等方法,Set有add、delete、has方法。示例展示了Map和Set的基本操作。
21 3
|
21天前
|
JavaScript 前端开发 开发者
JavaScript的`Math`对象
【4月更文挑战第21天】JavaScript的`Math`对象
18 3
|
1天前
|
JavaScript 前端开发
在JavaScript中,函数原型(Function Prototype)是一个特殊的对象
JavaScript中的函数原型是一个特殊对象,它为所有函数实例提供共享的方法和属性。每个函数在创建时都有一个`prototype`属性,指向原型对象。利用原型,我们可以向所有实例添加方法和属性,实现继承。例如,我们定义一个`Person`函数,向其原型添加`greet`方法,然后创建实例`john`和`jane`,它们都能调用这个方法。尽管可以直接在原型上添加方法,但推荐在构造函数内部定义以封装数据和逻辑。
7 1
|
1天前
|
JavaScript 前端开发
JavaScript 提供了多种方法来操作 DOM(文档对象模型)
【5月更文挑战第11天】JavaScript 用于DOM操作的方法包括获取元素(getElementById, getElementsByClassName等)、修改内容(innerHTML, innerText, textContent)、改变属性、添加/删除元素(appendChild, removeChild)和调整样式。此外,addEventListener用于监听事件。注意要考虑兼容性和性能当使用这些技术。
6 2
|
5天前
|
存储 JavaScript 前端开发
JavaScript对象方法详解
JavaScript对象方法详解
14 1
|
5天前
|
JavaScript
js多维数组去重并使具有相同属性的对象数量相加
js多维数组去重并使具有相同属性的对象数量相加
10 1
|
8天前
|
JavaScript 前端开发 C语言
JavaScript编程语法练习
本篇文章是对于javaScript中if ,switch,while ,do-while,,for语法的作业练习.对于我来说也是对自己知识掌握的一种检验.是对js的基础语法进行的一次练习,通过有趣的示例进行练习,使得对于代码能够增加印象,对于知识的掌握更加透彻.
|
12天前
|
前端开发 JavaScript 数据安全/隐私保护
前端javascript的DOM对象操作技巧,全场景解析(二)
前端javascript的DOM对象操作技巧,全场景解析(二)
|
12天前
|
移动开发 缓存 JavaScript
前端javascript的DOM对象操作技巧,全场景解析(一)
前端javascript的DOM对象操作技巧,全场景解析(一)
|
12天前
|
缓存 编解码 自然语言处理
前端javascript的BOM对象知识精讲
前端javascript的BOM对象知识精讲