_Core/Lang/Plugins/Parser/HolidayPlugin.cs

(开头部分) 5KB

这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using ComLib.Lang;


namespace ComLib.Lang.Extensions
{

    /* *************************************************************************
    <doc:example>
    // Holiday plugin allows references to dates using Holiday names such as:
    // Christmas
    // Independence day
    // Valentines day
    // New Years
    
    if today is New Years 2012 then 
	    print happy new year!
    </doc:example>
    ***************************************************************************/

    /// <summary>
    /// Combinator for handling holidays.
    /// TODO: next holiday, previous holiday.
    /// </summary>
    public class HolidayPlugin : ExprPlugin
    {
        private static readonly string[] _tokens = 
        {
            "New", "Valentines", "Independence", "Christmas",
            "new", "valentines", "christmas", "independence"
        };


        private Dictionary<string, Func<DateTime>> _holidays;


        private int _maxWordsInHoliday = 3;


        /// <summary>
        /// Initialize
        /// </summary>
        public HolidayPlugin()
        {
            _holidays = new Dictionary<string,Func<DateTime>>();
            _holidays["New Years"       ] = () => Convert.ToDateTime("1/1/"   + DateTime.Now.Year.ToString());
            _holidays["Valentines Day"  ] = () => Convert.ToDateTime("2/14/"  + DateTime.Now.Year.ToString());
            _holidays["Independence Day"] = () => Convert.ToDateTime("7/4/"   + DateTime.Now.Year.ToString());
            _holidays["Christmas Eve"   ] = () => Convert.ToDateTime("12/24/" + DateTime.Now.Year.ToString());
            _holidays["Christmas"       ] = () => Convert.ToDateTime("12/25/" + DateTime.Now.Year.ToString());
            _holidays["New Years Eve"   ] = () => Convert.ToDateTime("12/31/" + DateTime.Now.Year.ToString());

            _holidays["new years"] = () => Convert.ToDateTime("1/1/" + DateTime.Now.Year.ToString());
            _holidays["valentines day"] = () => Convert.ToDateTime("2/14/" + DateTime.Now.Year.ToString());
            _holidays["independence day"] = () => Convert.ToDateTime("7/4/"   + DateTime.Now.Year.ToString());
            _holidays["christmas eve"   ] = () => Convert.ToDateTime("12/24/" + DateTime.Now.Year.ToString());
            _holidays["christmas"       ] = () => Convert.ToDateTime("12/25/" + DateTime.Now.Year.ToString());
后面还有 72 行代码,解锁后查看完整代码

24 小时内免费解锁 3 个项目,之后 1 积分/个。 规则说明

AI 解读

登录后可用,每次 10 积分,解读结果公开显示在下面。

还没有人解读过这个文件。