に変換する年から4桁の2桁にしてもらうことを目的としてクライアントまで、フルのC#
-
02-07-2019 - |
質問
私の信用カードプロセッサが必要で送ってもいい二桁の年からカードの有効期間が満了す皆様からのあたたかいご支てい加工:
- りたい
DropDownList
の4桁の年のページです。 - I証の有効期限は、
DateTime
分野を必ず有効期限が渡されるCCプロセッサーなし致します。 - お送りい二桁の年をCCプロセッサとが必要です。これを部分文字列の値から年DDL.
手に入れる方法はないのがに変換するには四桁の年に二桁ます。私は見るもの DateTime
オブジェクトです。いや、あく加工することだと思いますが?
解決
れば作成したDateTimeオブジェクトの有効期限(月/年)を使用できToString()おDateTimeの変数はこのように:
DateTime expirationDate = new DateTime(2008, 1, 31); // random date
string lastTwoDigitsOfYear = expirationDate.ToString("yy");
編集:ご注意とお日にちもご利用の場合はDateTimeオブジェクト時のバリデーションを実施します。自分がその気にさえなれば選択05/2008としてカードの有効期限が満了すが、初めてとなります。
他のヒント
1液 さらに高速:
yourDateTime.Year % 100
2液 (よりエレガントで私の意見:
yourDateTime.ToString("yy")
その答えています。ここでは付け加えておきたいもの。一部の人なければならないとも言われていなかった。
きのご利用
DateTime.Now.Year.ToString("yy");
そのため、お客様が所有する上で使用すれば問題ありません。そのと同じ間違いです。
に変更するには
DateTime.Now.ToString("yy");
この作品専用に作成する方法もあります。
public int Get4LetterYear(int twoLetterYear)
{
int firstTwoDigits =
Convert.ToInt32(DateTime.Now.Year.ToString().Substring(2, 2));
return Get4LetterYear(twoLetterYear, firstTwoDigits);
}
public int Get4LetterYear(int twoLetterYear, int firstTwoDigits)
{
return Convert.ToInt32(firstTwoDigits.ToString() + twoLetterYear.ToString());
}
public int Get2LetterYear(int fourLetterYear)
{
return Convert.ToInt32(fourLetterYear.ToString().Substring(2, 2));
}
とは思わないが特殊組込みコマンドでものです。います。
更新:で欠かを検証するものだ。検証の長さを入力変数です。
この時点で、最も簡単な方法であるだけで切り詰めの桁数。クレジットカード、日時、過去には不要でY2Kな意味があります。同じであれば何とかコード未満の場合は90です。
いてさえの代わりに、ドロップダウンリストのみのユーザータイプのう。ることができるので、ほとんどのユーザに対応できます。
を利用したDateTimeオブジェクトのToStringとカスタムフォーマット文字列のようにmyDate.ToString("MM/dd/yy")です。
いくつかのシステムの決定によって、カットオフは75;75+は19xx以下は20xx年.
//using java script
var curDate = new Date();
var curYear = curDate.getFullYear();
curYear = curYear.toString().slice(2);
document.write(curYear)
//using java script
//using sqlserver
select Right(Year(getDate()),2)
//using sql server
//Using c#.net
DateTime dt = DateTime.Now;
string curYear = dt.Year.ToString().Substring(2,2).ToString() ;
//using c#.net
DateTime.Now.Year - (DateTime.Now.Year / 100 * 100)
作品の登場です。変化 DateTime.Now.Year
それを動作させるためにも。
してみてはいかがでしょうか、元のプページあたり2桁の値のみですか?クレジットカードカバー小さなスパンで見ると、年の場合には、あらゆるCCがベンダー間で2桁の数字です。
こちらはへのリンク4Guysの記事からできる形式の日時のToString()メソッドに渡すと、カスタムフォーマット文字列になります。
http://www.aspfaqs.com/aspfaqs/ShowFAQ.asp?FAQID=181
などの場合でも離れの一例です。
'Create a var. named rightNow and set it to the current date/time
Dim rightNow as DateTime = DateTime.Now
Dim s as String 'create a string
s = rightNow.ToString("MMM dd, yyyy")
そのリンクはこちらここをクリックするとそのリストDateTimeFormatInfoクラスすることで、これらのフォーマットオプションが可能です。
http://msdn.microsoft.com/en-us/library/system.globalization.datetimeformatinfo.aspx
あるんじゃないでしょうかもう少しというを利用するのではなく、部分文字列が、人が知っています。
これは、もうと思ってばよ ExtensionMethod
(以降のC#3.0)以降これを非表示にし実施するための利用のありとあらゆるところで活躍プロジェクトで再現し、コードの間には要注意のユーティリティクラス。
拡張方法を"追加"の方法は、既存の種類 を作成することなく新しい派生型の再コンパイルを伴他 変更のタイプです。延伸方法は特別な種類の 静的メソッドが呼ばれたインスタンス法 の延長タイプです。クライアントコードを書クライアントまで、フルのC#とVisual Basic、 みられない差出延長方法 の方法は、実際に定義されたタイプです。
public static class DateTimeExtensions
{
public static int ToYearLastTwoDigit(this DateTime date)
{
var temp = date.ToString("yy");
return int.Parse(temp);
}
}
その後このメソッドを呼び出しで使用 DateTime
オブジェクトは、例---
var dateTime = new DateTime(2015, 06, 19);
var year = cob.ToYearLastTwoDigit();
その答えは非常にシンプルです:
DateTime、今=DateTime.今日;文字列zeroBased=。ToString("yy-MM-dd");
このう大丈夫でした。yourDateTime.ToString().Substring(2);
場合でも、組み込み方法が存在するのではなく、検証とより、今日でとは違うからほとんどの部分文字列ます。のか心配することはない。