Day Controller

by kuonyuu

JavaScript

var f = {};
var tf = {};
var dm = alert;

// init
f.currentYear = 648;
f.currentMonth = 3;
f.currentDay = 1;


// basic setting

// week setting
f.maxWeekDay = 8;
f.weekName = ["Zero", "Onn", "Twiz", "Thre", "Fuer", "Fife", "Sat", "Seve"];
f.startDayWeekDay = 4;

// day setting
f.maxDay = 38;

// month setting
f.maxMonth = 10;
f.monthName = ["One", "2", "三", "肆", "V", "110", "7", "2^3", "3*3", "12-2"];


function getLastWeekDay(startWeekDay, day, weekDay) {
    // something wrong
    //dm(startWeekDay);
    if ( startWeekDay < weekDay / 2 ) {
        startWeekDay = Math.abs( day % weekDay + startWeekDay - 1);
    }
    else {
        startWeekDay = Math.abs( day % weekDay - weekDay + startWeekDay - 1);
    }

    dm("getLastWeekDay " + startWeekDay);
    return startWeekDay;
}

//getLastWeekDay(1, 38, 8);

getLastWeekDay(7, 2, 8); // day, start day, week day

// =============================================================================================




function getMonthLastDay (month, preMonthFirstDay, max) {
    tf.fDay = preMonthFirstDay;

    // preMonthFirstDay = f.startDayWeekDay;
    // pre mnoth last week day + 1 = cur month week day
    for ( tf.i = 2; tf.i < month; tf.i++) {
        tf.fDay = getLastWeekDay(tf.fDay);
        tf.fDay = dateChangeCheck(1, tf.fDay, f.maxDay);
    }
    
    return tf.fDay;
}

function getCurrentWeekDay ( name ) {
    tf.temp = Math.abs(f.currentDay % f.maxWeekDay - f.maxWeekDay + f.startDayWeekDay - 1);
    /* - = ↑same as = -
        tf.temp = f.currentDay % f.weekDay + (f.startDayWeekDay - 1);
        if ( tf.temp >= f.weekDay ) { tf.temp -= f.weekDay; }
    */
    
    if ( f.currentMonth > 1 ) {
        // get pre month first day
        tf.tempPreStarWeekDay = getMonthLastDay(f.currentMonth, f.startDayWeekDay, f.maxDay);
        dm("tf.tempPreStarWeekDay : " + tf.tempPreStarWeekDay);
        //tf.temp = Math.abs(f.currentDay % f.maxWeekDay - f.maxWeekDay + tf.tempPreStarWeekDay - 1);
        //dm("Week is: " +...