zoukankan      html  css  js  c++  java
  • js日期比较

    var assert = require('assert');
    describe('mocha', function() {
        describe('#indexOf()', function() {
            it('mocha test', function() {
    
                var EQUAL = '0',
                    RIGHT = '1',
                    SUCCESS = 'OK',
                    ERROR = 'ERROR';
    
                // 日期相等
                var result1 = comparisonDate('2017-11-11', '2017-11-11');
                assert.equal(result1.state, SUCCESS);
                assert.equal(result1.content, EQUAL);
    
                // 开始日期小于结束日期
                var result2 = comparisonDate('2017-11-11', '2017-11-12');
                assert.equal(result1.state, SUCCESS);
                assert.equal(result1.content, RIGHT);
    
                // 开始日期大于结束日期
                var result3 = comparisonDate('2017-11-12', '2017-11-11');
                assert.equal(result1.state, ERROR);
    
                // 开始日期出错
                var result4 = comparisonDate('2017-11-1', '2017-11-11');
                assert.equal(result1.state, ERROR);
    
                // 结束日期出错
                var result5 = comparisonDate('2017-11-1', '3017-11-11');
                assert.equal(result1.state, ERROR);
    
            });
        });
    });
    
    function comparisonDate( begin_date, end_date  ) {
        const EQUAL = 0,
            RIGHT = 1,
            SUCCESS = 'OK',
            ERROR = 'ERROR',
            dateReg = /^[2]d{3}-[01]d-[0123]d$/;
    
        const data = {
            state: ERROR,
            msg: '',
            content: '日期出错'
        }
    
        if ( typeof begin_date !== 'string' || begin_date === '' || !dateReg.test( begin_date ) ) {
            data.msg = '参数begin_date出错';
            return data;
        }
    
        if ( typeof end_date !== 'string' || end_date  === '' || !dateReg.test( end_date ) ) {
            data.msg = '参数end_date出错';
            return data;
        }
    
        try {
            const beginTimestamp = new Date(begin_date).getTime();
            const endTimestamp = new Date(end_date).getTime();
    
            // 开始日期小于结束日期
            if ( beginTimestamp > endTimestamp ) {
                data.msg = '开始时间大于结束时间';
                return data;
            }
    
            // 开始日期等于结束日期
            if ( beginTimestamp ===  endTimestamp ) {
                data.state = SUCCESS;
                data.content = EQUAL.toString();
                return data;
            }
    
            data.state = SUCCESS;
            data.content = RIGHT.toString();
            return data;
    
        } catch ( err ) {
            return data;
        }
    }
    

      

  • 相关阅读:
    [LeetCode] 75. Sort Colors 颜色排序
    [LeetCode] 76. Minimum Window Substring 最小窗口子串
    OpenCV 2.4.10 Linux Qt Conifguration
    OpenCV2.4.10 Mac Qt Configuration
    [LeetCode] Combinations 组合项
    [LeetCode] 79. Word Search 词语搜索
    OpenCV count the number of connected camera 检测连接的摄像头的数量
    OpenCV 2.4.11 VS2010 Configuration
    Qt 程序和窗口添加图标
    [LeetCode] 80. Remove Duplicates from Sorted Array II 有序数组中去除重复项之二
  • 原文地址:https://www.cnblogs.com/maduar/p/7999921.html
Copyright © 2011-2022 走看看