技術者派遣の技術日誌ブログ

August 30, 2008

AvaxHome -> C# 3.0 Unleashed: With the .NET Framework 3.5

Filed under: Ajax, Asp.Net, C# — Tags: , , , , , , , , — Sayuri @ 9:33 pm

,ASP.NET,JAVASCRIPT,JQUERY

An introduction to UI technologies, including Windows Forms, WPF, ASP.NET Ajax, and Silverlight Coverage of traditional ASMX and WCF Web Services Coverage of multiple .NET technologies, including networking, instrumentation, interop, … CSharp .3.0.Unleashed.With.the.NET.Framework_3.5.rar.html http://hotfile.com/dl/3407269/c75423c/Sams. CSharp .3.0.Unleashed.With.the.NET.Framework_3.5_Code.zip.html

An introduction to UI technologies, including Windows Forms, WPF, ASP.NET Ajax, and Silverlight Coverage of traditional ASMX and WCF Web Services Coverage of multiple .NET technologies, including networking, instrumentation, interop, … CSharp.3.0.Unleashed.With.the.NET.Framework_3.5.rar.html http://hotfile.com/dl/3407269/c75423c/Sams.CSharp.3.0.Unleashed.With.the.NET.Framework_3.5_Code.zip.html. Or http://uploading.com/files/72MWF37C/Sams.CSharp.3.0.Unleashed.With.the. …

View post:
AvaxHome -> C# 3.0 Unleashed: With the .NET Framework 3.5

[Ruby]Rubyで日付-時間を操作

Filed under: Ruby/Ruby on Rails — Tags: , — Sayuri @ 4:47 pm

Perlで日付・時間を操作 – DateTime モジュールの使い方

http://iandeth.dyndns.org/mt/ian/archives/000619.html

のようなことをRubyでやる方法を調べてみました。

基本

現在日時のインスタンスを作る
Time.new  #=> Mon Jun 05 20:03:59 JST 2006Time.now  #=> Mon Jun 05 19:47:04 JST 2006

Rubyの場合はデフォルトでローカルのタイムゾーンのインスタンスを作ります。newとnowの違いはinitializeを呼ぶか呼ばないかだそうです。

initializeを再定義とかしない限りあまり関係なさそう?

任意の日時のインスタンスを作る
Time.mktime 2006, 6, 2, 16, 30, 50  #=> Fri Jun 02 16:30:50 JST 2006

あるいは

Time.mktime 50, 30, 16, 2, 6, 2006, 6, 3, 3, "GMT"  #=> Fri Jun 02 16:30:50 JST 2006

前者の形式では、年、月、日、時、分、秒と指定します。年以降は省略可です。後者の形式では、Time#to_aの結果と同じ順番で指定します。

詳しくは、Rubyリファレンスを参考に。

http://www.ruby-lang.org/ja/man/index.cgi?cmd=view;name=Time

文字列に変換する
time.to_s  #=> "Fri Jun 02 16:30:50 JST 2006"

Rubyではymdやhmsのようなメソッドはないようです。同じようなことをするなら次のフォーマットで整形するしかなさそうです。

任意のフォーマットに整形された文字列を作る
Time.now.strftime "%Y/%m/%d %H:%M:%S"  #=> "2006/06/05 19:59:19"Time.now.strftime "%Y年%m月%d日 %H時%M分%S秒"  #=> "2006年06月05日 20時00分10秒"

一つ前のhmsやymdをこれを用いて定義してみるとかんな感じか…。

class Time def ymd(splitter)   [year, month, day].join splitter end def hms(splitter)   [hour, min, sec].join splitter endend  #=> nilTime.now.ymd "/"  #=> "2006/6/5"Time.now.hms "/"  #=> "20/10/13"
月の日数を調べる

標準ではないようなので、Railsライブラリの一つのActiveSupportを使います。

time = Time.mktime 2005, 2  #=> Tue Feb 01 00:00:00 JST 2005time.at_end_of_month.day  #=> 28

閏年にも対応しているようです。

time = Time.mktime 2004, 2  #=> Sun Feb 01 00:00:00 JST 2004time.at_end_of_month.day  #=> 29
曜日を調べる
wd = %w(月 火 水 木 金 土 日)  #=> ["月", "火", "水", "木", "金", "土", "日"]wd[Time.now.wday-1]  #=> "月"

日時の加算・減算

これを楽に行なえそうなメソッドは標準では用意されてないようです。Railsのライブラリの一つのActiveSupportを使えば楽に出来ます。

4日足す(4日後)
require 'rubygems'  #=> truerequire 'active_support'  #=> truetime = Time.mktime 2006, 5, 30  #=> Tue May 30 00:00:00 JST 20064.days.since time  #=> Sat Jun 03 00:00:00 JST 2006time.since 4.days  #=> Sat Jun 03 00:00:00 JST 2006
3年引く(3年前)
3.years.ago time  #=> Fri May 30 06:00:00 JST 2003time.years_ago 3  #=> Fri May 30 00:00:00 JST 2003
うるう年を考慮する場合
time.last_year  #=> Sat Jan 10 00:00:00 JST 2004365.days.ago time  #=> Sun Jan 11 00:00:00 JST 2004

ActiveSupport::CoreExtentions::Time#last_yearはうるう年を考慮してないっぽいので365日を引きます。

二つの日時の差分を調べる

差分を求めたりできるものについては探してみた感じではないようです。

何かご存知でしたらよろしくお願いします。

日時っぽい文字列をTimeオブジェクトに変換する

文字列パターンを指定した上で変換
require 'date' #=> yesDate.strptime("2003年04月18日", "%Y年%m月%d日").to_s  #=> "2003-04-18"

Timeクラスにはこのようなメソッドはありませんが、Dateクラスにはあるようです。ただ基本的にはTimeクラスの方が便利なのであまり使う機会はないかもしれません。またDateクラスでparseできるのは日付表現だけです。

ただし、日本語の日時をparseする際、Time.parseではうまく行かないようなのでDate.strptimeを使う必要がありそうです。DateオブジェクトをTimeオブジェクトに変換するには、ActiveSupport::CoreExtentions::Date#to_timeを使うとよさそうです。もちろん手動で

require 'date' #=> yesdate = Date.strptime("2003年04月18日", "%Y年%m月%d日")  #=> #Time.mktime date.year, date.month, date.day  #=> Fri Apr 18 00:00:00 JST 2003

とも出来ます。

WEBで使われているフォーマットを変換

require 'time'  #=> yestime = Time.parse "09 Feb 1994 22:23:32 GMT"  #=> Thu Feb 10 07:23:32 JST 1994time.year  #=> 1994

通常文字列をTimeオブジェクトに変換するにはTime.parseメソッドを使いますが、よく使われているフォーマットの場合にはそれに対応したメソッドもあります。

time = Time.rfc2822 "09 Feb 1994 22:23:32 GMT"  #=> Thu Feb 10 07:23:32 JST 1994

様々なフォーマットの文字列に変換する

現在のところ以下の3種類標準添付のtime.rbでサポートされているようです。

メールヘッダー用
require 'time'Time.now.rfc2822  #=> "Mon, 05 Jun 2006 21:54:02 +0900"
HTTP Protocol用(RFC 1123)
Time.now.httpdate  #=> "Mon, 05 Jun 2006 12:55:57 GMT"

リファレンスによれば、このメソッドはRFC:2616に準拠しているようでネタもとのページとはRFCが異なるのですが、表示形式は同じのようです。

XML用(ISO8601)

RSS1.0などで使われている形式です。

Time.now.xmlschema  #=> "2006-06-05T21:59:28+09:00"Time.now.iso8601  #=> "2006-06-05T21:59:39+09:00"

タイムゾーンの概念

Time.nowなどで生成した場合はシステムと同じタイムゾーンに設定されます。UTCに変換するにはutc(あるいはgmtime)メソッドを使います。

Time.now.utc  #=> Mon Jun 05 13:06:56 UTC 2006Time.now.gmtime  #=> Mon Jun 05 13:06:58 UTC 2006

また、変換ではなく新たにUTCでTimeオブジェクトを使う場合はTime.utcを使います。

現在のタイムゾーン名を取得
Time.now.zone  #=> "JST"
タイムゾーンを変更する

今のところ標準でサポートされているのはUTCとlocalの相互変換のみです。

ロケールに関して

ロケールに関してのライブラリは今のところ知りません。

まとめ

Rubyの場合は標準でTimeクラスがあるだけでなく標準添付でdate.rb、time.rbと言ったライブラリが充実しているため単純な処理であればこれで十分でしょう。

Railsで何か作る際にはActiveSupportの強力な拡張が便利です。単に日付計算したい際にもActiveSupportを使う方が便利かと思います。

RAAやGemsは探していないのでここを探せばもっと良いライブラリがあるかもしれません。

[Python]文字列から日付型変換と演算

Filed under: LAMP, Python — Tags: , , — Sayuri @ 4:22 pm

登録したデータを「今日の登録分」だけ表示するようにして、「昨日の分」リンクでずーとたどっていけるようにしたいなぁ、と。

検索結果を filter 使って絞って、order_by でソートできるのもわかりました。

なので、「今日の分だけ表示」はできた。

んで、「昨日(前の日)」を得るために、日付の書式で入力された文字列('2007-04-08'とか)を日付型に変換する方法がよくわからんかった。。。

とりあえず、

>>> from datetime import datetime, timedelta
>>> s='2007-04-07'
>>> ss=s.split('-')
>>> ss
['2007', '04', '07']
>>> dt = datetime(int(ss[0]),int(ss[1]),int(ss[2]))
>>> dt
datetime.datetime(2007, 4, 7, 0, 0)
>>> dt2 = dt – timedelta(days=2)
>>> dt2
datetime.datetime(2007, 4, 5, 0, 0)

こんな感じで変換と演算はできたんだけど、変換はちょっと面倒くさい。

もっと簡単なやり方が有りそうな気が???。

java の、SimpleDateFormat みたいにできんかな?

追記
id:bonlife さんにご指摘いただいたので、試してみました。

>>> import time
>>> from datetime import datetime, timedelta
>>> s='2007-04-09'
>>> st=time.strptime(s,'%Y-%m-%d')
>>> st
(2007, 4, 9, 0, 0, 0, 0, 99, -1)
>>> dt=datetime(st.tm_year, st.tm_mon, st.tm_mday)
>>> dt
datetime.datetime(2007, 4, 9, 0, 0)
>>> dt2=dt-timedelta(days=2)
>>> dt2
datetime.datetime(2007, 4, 7, 0, 0)

datetime 型で返されるのではなくて、struct_time という構造体みたいなものになるんですね。

なるほど、自前で文字列分解して int 変換してやる必要はなくなりますね。

datetime 型で生成する部分はしかたないんだな。

PHP から SQLite に接続する方法

Filed under: PHP — Tags: , , — Sayuri @ 2:38 pm

下記が PHP から SQLite に接続する例です。
ヘテムルでは、PHP4 と PHP5 でご利用いただけます。
※ SQLite2 のみご利用いただけます。

ソースコード下記のソースコードを参考にしてください

view plaincopy to clipboardprint?

Ruby 月末の日付を年月から計算

Filed under: Ruby/Ruby on Rails — Tags: , — Sayuri @ 2:29 pm

年と月だけがわかっていて、その月の月末の日を求める方法です。
Date関数を使うとめちゃ簡単です。

#!/usr/local/bin/ruby

require “date”

March_day = Date.new(2007,3).day
April_day = Date.new(2007,4).day

p 'march last day is ' + March_day
p 'april last day is ' + April_day

#実行結果

march last day is 31
april last day is 30

PHP から MySQL に接続する方法

Filed under: LAMP, PHP — Tags: , , — Sayuri @ 11:32 am

下記が PHP から MySQL に接続する例です。
ヘテムルでは、PHP4 と PHP5 でご利用いただけます。

ソースコード下記のソースコードを参考にしてください

view plaincopy to clipboardprint?

August 29, 2008

ASP.NET でJSON形式を提供するために JavaScriptSerializer

Filed under: Asp.Net, Javascript/Xhtml/Css — Tags: , , — Sayuri @ 6:27 pm

ASP.NET でJSON形式を提供するために JavaScriptSerializer

軽量なAJAXページを作ろうとすると、jQuery を使ってjavascriptを自分で書いたページに JSON でデータを渡したくなる。(すなわち ASP.NET AJAX を信じ切れていない俺)

でもって JSON データの提供だが、.NET Framework 3.5 では WCF を使えという方向になっていたようなのだが、これはこれでWeb.Config に設定を書かないといけないというのは、どうにもイケてない。提供するデータ形式を柔軟にする必要もないのに。

こっちとしては何かしらの決まった形式でのデータ提供しかしないんだからプレゼンテーションのためのさまざまなフックも必要なく、Httpハンドラでさくっと提供したい。ただしJSON形式への変換の部分は自分で作りたくない。

そんな時に JavaScriptSerializer 。.NET Framework 3.5 のマニュアルでは deplicated とマークがついているのが、 JavaScriptSerializer Undeprecated in .NET 3.5 SP1 だそうだ。これからも JavaScriptSerializer を使って大丈夫。 せっかくなので、Httpハンドラは IHttpAsyncHandler を使って非同期にするとスレッドが有効活用できるはず。

See these links for more information about the DataContractJsonSerializer:

public partial class _Default : System.Web.UI.Page
{

ASP.Net JSON形式に変換

Filed under: ALL, Asp.Net, Javascript/Xhtml/Css — Tags: , , — Sayuri @ 5:46 pm

JSON形式に変換します。
System.Web.Extensions.dllが必要です。

Microsoftのhttp://www.asp.net/ajax/にて、
「ASP.NET AJAX Downloads for ASP.NET 2.0」をダウンロードして、
入手することができます。
インストールして、参照設定を行います。

JSONに変換するHashTableを作成します。

System.Web.Script.Serialization.JavaScriptSerializerを生成します。
Serializeにて、JSON形式にエンコードできます。

また、デコードを行いたい場合は、Deserializeを使用します。
Deserialize(Of 変換したい方)(JSON)
となります。

●aspx.vb

Imports System.Web.Script.Serialization

Partial Class _Default

WCF の ASP.NET Compatibility Model を使用した Stateful な N-tier アプリケーション

Filed under: C# — Tags: , , , — Sayuri @ 1:09 pm

この ASP.NET Comparibility Model のソースコードのエッセンスについては後述で説明をおこないますので、まずは、セッションでご紹介したかった ASP.NET Comparibility Model、Durable Service、Workflow Service のすべての事例 (サンプルデモ)

[Django][javascript] django – javascript 間を JSON でやりとりする

Filed under: Javascript/Xhtml/Css, Python — Tags: , , , , , — Sayuri @ 11:27 am

Older Posts »

このページの上部に戻る

Powered by WordPress