2014年8月20日 星期三

C# 時間比較 DateTime.Compare

時間比較!!  是很常用使用到的判斷!!

在C#裡有個方便的函式 DateTime.Compare
利用DateTime.Compare比較兩個時間,主要會回傳3種狀態

假設: t1 為第一組時間,t2為第二組時間。 回傳值為以下三種組合。

  • t1晚於t2,回傳值:1
  • t1等於t2,回傳值:0
  • t1早於t2,回傳值:-1


程式碼範例:[下載]

        DateTime t1 = new DateTime(2010, 10, 7);
        DateTime t2 = new DateTime(2010, 10, 8);
        int result = DateTime.Compare(t1, t2);
        Response.Write("時間t1早於t2:"+result+"<BR>");

        t1 = new DateTime(2010, 10, 8);
        t2 = new DateTime(2010, 10, 8);
        result = DateTime.Compare(t1, t2);
        Response.Write("時間t1等於t2:" + result + "<BR>");

        t1 = new DateTime(2010, 10, 9);
        t2 = new DateTime(2010, 10, 8);
        result = DateTime.Compare(t1, t2);
        Response.Write("時間t1晚於t2:" + result + "<BR>");

2014年7月15日 星期二

康健生機 蔬G粉

我是每天帶者愛心便當的上班族,但我超愛喝湯,每次飯後都會想來碗清湯喝喝。

但如果再扛個保溫瓶上班,這可是真是會累死人。

使用快沖湯品,他那食品添加物可是會多的嚇死人。

這問題不斷困擾我,直到有天我在網路看到蔬G粉這總奇怪的東西,他強調他是天然萃取

的食品添加物。

於是.... 秉持科學家精神就買罐回家試試了。

產品封面:(老師傅的堅持,阿媽的傳承!!竟是調味粉,看起來頗諷刺)




  • 強調天然的相關字樣
  • 主要用途為炒菜、羹湯、涼拌等用途。



成分:(看起來頗健康)

  • 內含物並沒有看到以化學式為名的內含物。


打開之後的內含物:(含乾燥劑、調味顆粒)



  • 馬上來杯熱水試試!!原廠建議1湯匙搭配60CC的水,為還原標準比例。
  • 一般家用的飯碗(240CC),需加入四湯匙的用量。




  • 只加一湯匙溶解後呈現為淡黃色。

結論:


本人是熱開水加入適量海帶芽,再加入3湯匙蔬G粉,可產出一杯可口湯品。

  1. 喝起來味道就跟市售的昆布湯很像,喝完口渴現象不明顯
  2. 風味比烹大師豐富一點。
  3. 若為還原高湯湯頭,使用量驚人,這罐很快就會用完。
成分看起來是OK的,但現在這個社會出問題的大多是廠商誠信問題,芝麻油不是芝麻做的,橄欖油不是橄欖做的,低級米混充高級米等等~~

蔬G粉是否也是如此,我無法驗證!! 以上請各位參考~~!!



2014年6月10日 星期二

JQuery 資料欄位的輸入

在Jquery 中,使用 data-role="fieldcontain" 屬性,即可讓Jquery自動去調整相關欄位位置。

如果要使用原生 HTML 只要在 data-role="none" 即可。

單行文字方塊與密碼欄位:


範例下載

在Input type屬性中


          <div id="userDiv" data-role="fieldcontain">
                    <label for="user">使用者名稱: </label>
                    <input type="text" name="user" id="user" />
                </div>
                <div id="passDiv" data-role="fieldcontain">
                    <label for="pass">使用者密碼: </label>
                    <input type="password" name="pass" id="pass"
                           data-mini="true" />
                </div>
                <div id="btnDiv" data-role="fieldcontain">
                    <input type="submit" value="登入"
                           data-inline="true" />
                    <input type="reset" value="重設" data-inline="true" data-mini="true" />
          </div>


2014年5月27日 星期二

Razor 建立可重複的內容區塊 RenderPage( )

許多情境下,網頁是可以重複使用,例如: Header 與 footer 部分,故我們可以先行製作好 Header的網頁,然後不斷的重複套用,可以減少開發的時間,並便於管理。

範例下載:

先在Layout的目錄建立_header.cshtml 與 _footer.cshtml




這兩個檔案中輸入,預計顯示之內容。

在_Layout.cshtml 中於特定位置使用 RenderPage( ) 方法,即可重複匯入相關指定網頁內容。


Layout 部分:


<div id="content">
        <header>
            @RenderPage("~/Layout/_header.cshtml")
            <nav>
                <ul>
                    <li>首頁</li>
                    <li>購物</li>
                    <li>關於</li>
                </ul>
            </nav>
        </header>
        <section>
            @RenderBody()
        </section>
        <footer>
            @RenderPage("~/Layout/_footer.cshtml")
        </footer>
    </div>

結果如下:









Razor 版面配置的統一標題與統一名稱利用 Page 物件。

在網頁內容中先定義Page的相關內容屬性。

如:

 Page.Title = "網頁抬頭";
  Page.Name = "網頁標題";

下載範例:



內容部分:


@{Layout = "~/Layout/_Layout.cshtml";
  Page.Title = "我是抬頭";
  Page.Name = "我是標題";
 }
@section footer{<h1>我是頁尾</h1>}
<p>ABC123</p>



Layout部分:

    <title>@Page.Title</title>
    <link rel="stylesheet" href="@Href("~/style/main.css")"></head>
<body>
    <div id="content">
        <header>
           @Page.Name
            <nav>
                <ul>
                    <li>首頁</li>
                    <li>購物</li>
                    <li>關於</li>
                </ul>
            </nav>
        </header>
        <section>
            @RenderBody()
        </section>
        <footer>
            @RenderSection("footer")
        </footer>
    </div>
</body>

結果如下:



2014年5月26日 星期一

Razor 多區段版面配置頁面 RenderSection( )

若Layout中有多區段內容需替換,需採用RenderSection( ) 來進行處理。

範例下載:

在內容網頁中,需進行定義如下所示。


  1. 需指定Layout檔案位置。
  2. 需定義標籤名稱與內容。
  3. @RenderSection( ) 增加第二個參數為布林值,可判斷是否內容部分的該區段一定要傳值到Layout這裡。 範例:@RenderSection("header",true);
  4. IsScetionDefined( )判斷是否該值是否有傳值過來。 範例:IsScetionDefined( "header")



內容部分:


@{Layout = "~/Layout/_Layout.cshtml";}
@section header{<h1>我是標題</h1>}
@section footer{<h1>我是頁尾</h1>}
<p>ABC123</p>


Layout部分:

<div id="content">
        <header>
           @RenderSection("header");
            <nav>
                <ul>
                    <li>首頁</li>
                    <li>購物</li>
                    <li>關於</li>
                </ul>
            </nav>
        </header>
        <section>
            @RenderBody()
        </section>
        <footer>
            @RenderSection("footer")
        </footer>
    </div>

Razor 版面配置 RenderBody()用法


1、須建立配置頁面,檔名需前面開頭為[ _ ]線,.NET 將不會把該網頁檔送上瀏覽器。
2、建議建立一個名為Layout的目錄結構,以便後須歸檔整理,方便套用。
3、建議採用CSS檔進行版面的樣式進行格式化,一般都是放在Style的目錄中。

RenderBody( ) 方法


版面配置頁面和一般CSHTML網頁相同,只是用於呼叫RenderBody( )方法來插入網頁的實際內容。

內容部分需指定Layout 的檔案路徑。 即可使用。




範例下載



Layout 部分:

<div id="content">
        <header>
            <h1>測試的網站</h1>
            <nav>
                <ul>
                    <li>首頁</li>
                    <li>購物</li>
                    <li>關於</li>
                </ul>
            </nav>
        </header>
        <section>
            @RenderBody()
        </section>
        <footer>
            <small>&copy; @DateTime.Now.Year </small>
        </footer>
</div>

內容部分: 

@{Layout = "~/Layout/_Layout.cshtml";}  

<p>ABC123</p>


結果如下:





2014年5月20日 星期二

Razor 資料型態轉換與驗證

在實務上,有時我們需要明確進行型態轉換,最常是使用在將使用者輸入的字串資料轉換成其他資料型態,這是一些As開頭的方法;檢查資料型態是Is開頭的方法,方法如下所示:



方法
說明
AsInt()
將數字內容的字串轉換成整數型態
IsInt()
檢查字串內容是否是整數型態,是傳回true
AsBool()
truefalse內容的字串轉換成布林型態
IsBool()
檢查字串內容是否是布林型態,是傳回true
AsFloat()
將擁有小數內容的字串轉換成浮點數型態
IsFloat()
檢查字串內容是否是浮點數型態,是傳回true
AsDecimal()
將擁有小數內容的字串轉換成Decimal數值型態
IsDecimal()
檢查字串內容是否是Decimal數值型態,是傳回true
AsDateTime()
將擁有日期時間內容的字串轉換成DateTime型態
IsDateTime()
檢查字串內容是否是DateTime型態,是傳回true


@{
       string str = "123";
      
    Response.Write("IS型態驗證str:"+str.IsInt()+"<BR>");

    int intshow = 0;

    intshow = str.AsInt();

    Response.Write("IS型態驗證intshow:" + intshow + "<BR>");
    
        
   }




正回購與逆回購

我們常在財經新聞中,聽到中國央行正在進行正、逆回購交易,那代表甚麼意思,以下是解釋內容。

中國人民銀行公開市場業務債券交易主要包括回購交易、現券交易和發行中央銀行票據 。

回購交易:

回購交易分為「正回購」「逆回購」兩種。

一、正回購:(資金緊縮)


為中國人民銀行向一級交易商賣出有價證券,並約定在未來特定日期買回有價證券的交易行為,正回購為央 行從市場收回流動性的操作。
 

二、正回購到期:(資金寬鬆)


為央行向市場投放流動性的操作。

三、逆回購:(資金寬鬆)

為中國人民銀行向一級交易商購買有價證券,並約定在未來特定日期將有價證券 賣給一級交易商的交易行為,逆回購為央行向市場上投放流動性的操作。

四、逆回購到期:(資金緊縮)

 為央行從市場收回流動性的操作。



備註:資料來源為Wiki 公開市場操作篇。

Razor 的資料型態的轉換

在實務上,有時我們需要明確進行型態轉換,最常是使用在將使用者輸入的字串資料轉換成其他資料型態,這是一些As開頭的方法;檢查資料型態是Is開頭的方法。

轉換是AS開頭:

型態檢查是IS開頭:

Razor 的 Response 與 Request

在WebPage物件中,我們常用的其中兩個物件如下:


屬性
說明
Request
取得目前HTTP請求的HttpRequest物件,此物件的屬性是目前請求的相關資訊,例如:Request.FilePath取得目前頁面的路徑;Request.Url取得URL網址
Response
取得目前HTTP回應的HttpResponse物件,此物件的屬性是目前回應至瀏覽器頁面的相關資訊


使用方式,如下所示

下載範例: