It looks like it's just to generate names of days, using a known month/year 
which starts on a Sunday by the looks of it. 


> On Dec 7, 2014, at 4:13 AM, sgrebnov <g...@git.apache.org> wrote:
> 
> Github user sgrebnov commented on a diff in the pull request:
> 
>    
> https://github.com/apache/cordova-plugin-globalization/pull/31#discussion_r21424012
> 
>    --- Diff: src/windows/GlobalizationProxy.js ---
>    @@ -0,0 +1,294 @@
>    +/*  
>    +    Licensed under the Apache License, Version 2.0 (the "License");
>    +    you may not use this file except in compliance with the License.
>    +    You may obtain a copy of the License at
>    +    
>    +    http://www.apache.org/licenses/LICENSE-2.0
>    +    
>    +    Unless required by applicable law or agreed to in writing, software
>    +    distributed under the License is distributed on an "AS IS" BASIS,
>    +    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 
> implied.
>    +    See the License for the specific language governing permissions and
>    +    limitations under the License.
>    +*/
>    +
>    +var GlobalizationError = require('./GlobalizationError');
>    +var locale = navigator.userLanguage;
>    +
>    +var decimalFormatter;
>    +var currencyFormatter;
>    +var percentFormatter;
>    +
>    +function createRoundingAlgorithm() {
>    +    // This is undefined in case of Windows 8.0
>    +    if (Windows.Globalization.NumberFormatting.IncrementNumberRounder) {
>    +        var rounder = new 
> Windows.Globalization.NumberFormatting.IncrementNumberRounder();
>    +        rounder.roundingAlgorithm = 
> Windows.Globalization.NumberFormatting.RoundingAlgorithm.roundHalfUp;
>    +        rounder.increment = 0.01;
>    +
>    +        return rounder;
>    +    }
>    +
>    +    return null;
>    +}
>    +
>    +function createDecimalFormatter(regionName) {
>    +    decimalFormatter = new 
> Windows.Globalization.NumberFormatting.DecimalFormatter([locale], regionName);
>    +
>    +    decimalFormatter.numberRounder = createRoundingAlgorithm();
>    +    decimalFormatter.isGrouped = false;
>    +
>    +    return decimalFormatter;
>    +}
>    +
>    +function getDecimalFormatter(regionName) {
>    +    return decimalFormatter || createDecimalFormatter(regionName);
>    +}
>    +
>    +function createCurrencyFormatter(regionName) {
>    +    var regionObj = new 
> Windows.Globalization.GeographicRegion(regionName);
>    +    var currency = regionObj.currenciesInUse[0];
>    +
>    +    currencyFormatter = new 
> Windows.Globalization.NumberFormatting.CurrencyFormatter(currency, [locale], 
> regionName);
>    +
>    +    currencyFormatter.numberRounder = createRoundingAlgorithm();
>    +    currencyFormatter.isGrouped = true;
>    +
>    +    return currencyFormatter;
>    +}
>    +
>    +function getCurrencyFormatter(regionName) {
>    +    return currencyFormatter || createCurrencyFormatter(regionName);
>    +}
>    +
>    +function createPercentFormatter(regionName) {
>    +    percentFormatter = new 
> Windows.Globalization.NumberFormatting.PercentFormatter([locale], regionName);
>    +
>    +    percentFormatter.numberRounder = createRoundingAlgorithm();
>    +    percentFormatter.fractionDigits = 0;
>    +    percentFormatter.isGrouped = false;
>    +
>    +    return percentFormatter;
>    +}
>    +
>    +function getPercentFormatter(regionName) {
>    +    return percentFormatter || createPercentFormatter(regionName);
>    +}
>    +
>    +function getNumberFormatter(options) {
>    +    options = options || { type: 'decimal' };
>    +    options.type = options.type || 'decimal';
>    +
>    +    var tags = locale.split('-');
>    +    var regionName = tags[tags.length - 1];
>    +
>    +    switch (options.type) {
>    +        case 'decimal':
>    +        {
>    +            return getDecimalFormatter(regionName);
>    +        }
>    +        case 'currency':
>    +        {
>    +            return getCurrencyFormatter(regionName);
>    +        }
>    +        case 'percent':
>    +        {
>    +            return getPercentFormatter(regionName);
>    +        }
>    +        default:
>    +            throw "The options.type can be 'decimal', 'percent', or 
> 'currency' only";
>    +    };
>    +}
>    +
>    +module.exports = {
>    +    getPreferredLanguage: function (win, fail) {
>    +        try {
>    +            var language = 
> Windows.System.UserProfile.GlobalizationPreferences.languages[0];
>    +
>    +            win({ value: language });
>    +        } catch (e) {
>    +            fail(e);
>    +        }
>    +    },
>    +
>    +    getLocaleName: function (win, fail) {
>    +        // Corresponds to a user-selected regional format
>    +        win({ value: locale });
>    +    },
>    +
>    +    dateToString: function (win, fail, args) {
>    +        tryDoAction(GlobalizationProxy.GlobalizationProxy.dateToString,
>    +            JSON.stringify({
>    +                date: args[0].date,
>    +                options: args[0].options || { formatLength: "short", 
> selector: "date and time" }
>    +            }), win, fail);
>    +    },
>    +
>    +    stringToDate: function (win, fail, args) {
>    +        tryDoAction(GlobalizationProxy.GlobalizationProxy.stringToDate, 
>    +            JSON.stringify({
>    +                dateString: args[0].dateString,
>    +                options: args[0].options || { formatLength: "short", 
> selector: "date and time" }
>    +            }), win, fail);
>    +    },
>    +
>    +    getDateNames: function (win, fail, args) {
>    +        try {
>    +            var options = args[0].options || { type: 'wide', item: 
> 'months' };
>    +            var type = options.type || 'wide';
>    +            var item = options.item || 'months';
>    +
>    +            var monthFormat = 
> Windows.Globalization.DateTimeFormatting.MonthFormat.none;
>    +            var dayOfWeekFormat = 
> Windows.Globalization.DateTimeFormatting.DayOfWeekFormat.none;
>    +
>    +            if (item === 'months' && type === 'wide') {
>    +                monthFormat = 
> Windows.Globalization.DateTimeFormatting.MonthFormat.full;
>    +            } else if (item === 'months' && type === 'narrow') {
>    +                monthFormat = 
> Windows.Globalization.DateTimeFormatting.MonthFormat.abbreviated;
>    +            } else if (item === 'days' && type === 'wide') {
>    +                dayOfWeekFormat = 
> Windows.Globalization.DateTimeFormatting.DayOfWeekFormat.full;
>    +            } else if (item === 'days' && type === 'narrow') {
>    +                dayOfWeekFormat = 
> Windows.Globalization.DateTimeFormatting.DayOfWeekFormat.abbreviated;
>    +            } else {
>    +                throw "Incorrect item type";
>    +            }
>    +
>    +            var formatter = new 
> Windows.Globalization.DateTimeFormatting.DateTimeFormatter(
>    +                Windows.Globalization.DateTimeFormatting.YearFormat.none,
>    +                monthFormat, 
>    +                Windows.Globalization.DateTimeFormatting.DayFormat.none, 
>    +                dayOfWeekFormat, 
>    +                Windows.Globalization.DateTimeFormatting.HourFormat.none, 
>    +                
> Windows.Globalization.DateTimeFormatting.MinuteFormat.none, 
>    +                
> Windows.Globalization.DateTimeFormatting.SecondFormat.none, 
>    +                [locale]);
>    +
>    +            var result = [];
>    +            if (item === 'months') {
>    +                for (var i = 0; i < 12; i++) {
>    +                    var date = new Date(2014, i, 20, 0, 0, 0, 0);
>    +                    result[i] = formatter.format(date);
>    +                }
>    +            } else {
>    +                for (i = 0; i < 7; i++) {
>    +                    date = new Date(2014, 5, i + 1, 0, 0, 0, 0);
>    --- End diff --
> 
>    why 2014 is hardcoded?
> 
> 
> ---
> If your project is set up for it, you can reply to this email and have your
> reply appear on GitHub as well. If your project does not have this feature
> enabled and wishes so, or if the feature is enabled but not working, please
> contact infrastructure at infrastruct...@apache.org or file a JIRA ticket
> with INFRA.
> ---
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscr...@cordova.apache.org
> For additional commands, e-mail: dev-h...@cordova.apache.org
> 

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@cordova.apache.org
For additional commands, e-mail: dev-h...@cordova.apache.org

Reply via email to