jQuery UI Datepicker 1.8.16 民國年 Extender
Code Snippet
- /*
* jQuery UI Datepicker 1.8.16
* Taiwan's Minguo calendar extender
* This extender modified the year to Taiwan's Minguo calendar
* Extended by Eddie Chen- */
- $.extend($.datepicker,{
- /* Parse existing date and initialise date picker. */
- _setDateFromField: function(inst, noDefault) {
- if (inst.input.val() == inst.lastVal) {
- return;
- }
- var dateFormat = this._get(inst, 'dateFormat');
- var dates = inst.lastVal = inst.input ? inst.input.val() : null;
- var date, defaultDate;
- date = defaultDate = this._getDefaultDate(inst);
- var settings = this._getFormatConfig(inst);
- try {
- //date = this.parseDate(dateFormat, dates, settings) || defaultDate;
- if(dates.couny>0)
- {
- var dateArr = dates.split("/");
- var year = parseInt(dateArr[0], 10) + 1911;
- var month = parseInt(dateArr[1], 10);
- var day = parseInt(dateArr[2], 10);
- date = new Date(year, month, day);
- }
- } catch (event) {
- this.log(event);
- dates = (noDefault ? '' : dates);
- }
- inst.selectedDay = date.getDate();
- inst.drawMonth = inst.selectedMonth = date.getMonth();
- inst.drawYear = date.getFullYear();
- inst.selectedYear = date.getFullYear();
- inst.currentDay = (dates ? date.getDate() : 0);
- inst.currentMonth = (dates ? date.getMonth() : 0);
- inst.currentYear = (dates ? date.getFullYear() : 0);
- this._adjustInstDate(inst);
- },
- _daylightSavingAdjust: function(date) {
- if (!date) return null;
- date.setHours(date.getHours() > 12 ? date.getHours() + 2 : 0);
- if (!date) return null;
- if((date.getFullYear()-1911)>0)
- date.getFullYear((date.getFullYear()-1911));
- else
- date.getFullYear((date.getFullYear()));
- return date;
- },
- _taiwanDateAdjust: function(date) {
- if (!date) return null;
- if((date.getFullYear()-1911)>0)
- date.setFullYear((date.getFullYear()-1911),date.getMonth(),date.getDay());
- else
- date.setFullYear((date.getFullYear()),date.getMonth(),date.getDay());
- return date;
- },
- /* Generate the month and year header. */
- _generateMonthYearHeader: function(inst, drawMonth, drawYear, minDate, maxDate,
- secondary, monthNames, monthNamesShort) {
- var changeMonth = this._get(inst, 'changeMonth');
- var changeYear = this._get(inst, 'changeYear');
- var showMonthAfterYear = this._get(inst, 'showMonthAfterYear');
- var html = '<div class="ui-datepicker-title">';
- var monthHtml = '';
- // month selection
- if (secondary || !changeMonth)
- monthHtml += '<span class="ui-datepicker-month">' + monthNames[drawMonth] + '</span>';
- else {
- var inMinYear = (minDate && minDate.getFullYear() == drawYear);
- var inMaxYear = (maxDate && maxDate.getFullYear() == drawYear);
- monthHtml += '<select class="ui-datepicker-month" ' +
- 'onchange="DP_jQuery_' + dpuuid + '.datepicker._selectMonthYear(\'#' + inst.id + '\', this, \'M\');" ' +
- '>';
- for (var month = 0; month < 12; month++) {
- if ((!inMinYear || month >= minDate.getMonth()) &&
- (!inMaxYear || month <= maxDate.getMonth()))
- monthHtml += '<option value="' + month + '"' +
- (month == drawMonth ? ' selected="selected"' : '') +
- '>' + monthNamesShort[month] + '</option>';
- }
- monthHtml += '</select>';
- }
- if (!showMonthAfterYear)
- html += monthHtml + (secondary || !(changeMonth && changeYear) ? ' ' : '');
- // year selection
- if ( !inst.yearshtml ) {
- inst.yearshtml = '';
- if (secondary || !changeYear)
- if((drawYear-1911) >0)
- html += '<span class="ui-datepicker-year">' + (drawYear-1911) + '</span>';
- else
- html += '<span class="ui-datepicker-year">' + drawYear + '</span>';
- else {
- // determine range of years to display
- var years = this._get(inst, 'yearRange').split(':');
- var thisYear = new Date().getFullYear();
- var determineYear = function(value) {
- var year = (value.match(/c[+-].*/) ? drawYear + parseInt(value.substring(1), 10) :
- (value.match(/[+-].*/) ? thisYear + parseInt(value, 10) :
- parseInt(value, 10)));
- return (isNaN(year) ? thisYear : year);
- };
- var year = determineYear(years[0]);
- var endYear = Math.max(year, determineYear(years[1] || ''));
- year = (minDate ? Math.max(year, minDate.getFullYear()) : year);
- endYear = (maxDate ? Math.min(endYear, maxDate.getFullYear()) : endYear);
- inst.yearshtml += '<select class="ui-datepicker-year" ' +
- 'onchange="DP_jQuery_' + dpuuid + '.datepicker._selectMonthYear(\'#' + inst.id + '\', this, \'Y\');" ' +
- '>';
- if((drawYear-1911) >0)
- {
- for (; year <= endYear; year++) {
- inst.yearshtml += '<option value="' + year + '"' +
- (year == drawYear ? ' selected="selected"' : '') +
- '>' + (year-1911) + '</option>';
- }
- }
- else
- {
- for (; year <= endYear; year++) {
- inst.yearshtml += '<option value="' + year + '"' +
- (year == drawYear ? ' selected="selected"' : '') +
- '>' + (year) + '</option>';
- }
- }
- inst.yearshtml += '</select>';
- html += inst.yearshtml;
- inst.yearshtml = null;
- }
- }
- html += this._get(inst, 'yearSuffix');
- if (showMonthAfterYear)
- html += (secondary || !(changeMonth && changeYear) ? ' ' : '') + monthHtml;
- html += '</div>'; // Close datepicker_header
- return html;
- },
- _formatDate : function(inst, day, month, year)
- {
- if (!day)
- {
- inst.currentDay = inst.selectedDay;
- inst.currentMonth = inst.selectedMonth;
- inst.currentYear = inst.selectedYear;
- }
- var date = (day ? (typeof day == 'object' ? day :
- this._daylightSavingAdjust(new Date(year, month, day))) :
- this._daylightSavingAdjust(new Date(inst.currentYear, inst.currentMonth, inst.currentDay)));
- return (date.getFullYear() - 1911) + "/" +
- (date.getMonth() < 9 ? "0" + (date.getMonth() + 1) : (date.getMonth() + 1)) + "/" +
- (date.getDate() < 10 ? "0" + date.getDate() : date.getDate());
- }
- });
Sunday, September 04, 2011
jQuery UI Datepicker 1.8.16 民國年 Extender
Saturday, August 27, 2011
How to prevent seeing “\ No newline at end of file” when using Git with Visual Studio
1. In Visual Studio menu, select Tools > Macros > Macros IDE
2. Select the Class View tab. Under My Macros, double click the EnvironmentEvents node.
3. select DocumentEvents from the dropdown list on the left, then select DocumentSaved from the dropdown list on the right. This will generate a blank event handler.
4. Paste the following code into the blank event handler.
Private Sub DocumentEvents_DocumentSaved(ByVal Document As EnvDTE.Document) Handles DocumentEvents.DocumentSaved
'
' This handler will add a newline to end of file if it doesn't already have one.
'
Dim textSelection As EnvDTE.TextSelectiontextSelection = CType(DTE.ActiveDocument.Selection(), EnvDTE.TextSelection)
Dim originalLine As Integer
originalLine = textSelection.AnchorPoint.Line
Dim originalOffset As Integer
originalOffset = textSelection.AnchorPoint.LineCharOffset
Dim viewTop As EnvDTE.TextPoint
viewTop = textSelection.TextPane.StartPointtextSelection.EndOfDocument(False)
Dim pt As VirtualPoint
pt = textSelection.BottomPoint()textSelection.GotoLine(pt.Line, True)
If textSelection.Text.Length <> 0 Then
textSelection.Text = textSelection.Text & vbCrLf
DTE.ActiveDocument.Save()
End If
textSelection.MoveToLineAndOffset(originalLine, originalOffset, False)
textSelection.TextPane.TryToShow(viewTop, vsPaneShowHow.vsPaneShowTop)
End Sub5. Save the macro
From now on all the files saved through Visual Studio will be appended with a new line to avoid the error message in the Git source control.
Sunday, February 20, 2011
Android Development Study Notes 2 - Opiton Menus
strings.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="AllDepartment">List All Depts</string>
<string name="Seach">Search</string>
</resources>
Add the following codes in the activity class
@Override
public boolean onCreateOptionsMenu(Menu menu) {
menu.add(0, 0, 0,this.getResources().getString(R.string.AllDepartment));
menu.add(0, 1, 1, this.getResources().getString(R.string.Seach));
return super.onCreateOptionsMenu(menu);
}
When user click on "menu" button, 2 option menus would appear at the bottom of the screen.
Android Study Notes 1 - "Hello World"
"Hello World"
strings.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="hello">Hello World, DroidActivity!</string>
<string name="app_name">Droid1</string>
<string name="hello1">你好!</string>
</resources>
main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/hello"
/>
<TextView android:id="@+id/textView1"android:layout_width="wrap_content" android:layout_height="wrap_content"android:text="@string/hello1"></TextView>
</LinearLayout>
DroidAvtivity.java
package com.myandroid.droid1;
import android.app.Activity;
import android.os.Bundle;
public class DroidActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
}