Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,037

HOME > .NET Framework > Forum > คำนวณ วัน/เดือน/ปี เกิด asp.net(C#) คำนวณออกมาเห็น อายุ ? ปี ? เดือน ? วัน



 

คำนวณ วัน/เดือน/ปี เกิด asp.net(C#) คำนวณออกมาเห็น อายุ ? ปี ? เดือน ? วัน

 



Topic : 047760



โพสกระทู้ ( 113 )
บทความ ( 0 )



สถานะออฟไลน์




คือว่าอยากทราบสูตรการคำนวณ วันเดือนปี เกิด นะครับเช่น
วันที่ปัจจุบัน 27/08/2010
วันที่เกิด 28/05/1986
ให้มันคำนวณออกมาว่า คุณอายุ 24 ปี 3 เดือน 95 วัน ประมาณนี้
ใครพอทราบบ้างหรือมีคำแนะนำอาไรดีช่วยแนะนำที
...............ขอบคุณครับ............



Tag : .NET, Ms SQL Server 2008, WebService, VB.NET, C#







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2010-08-27 10:30:04 By : loogway View : 10015 Reply : 1
 

 

No. 1



โพสกระทู้ ( 1,603 )
บทความ ( 1 )



สถานะออฟไลน์


ต้นแบบมาจากภาษา c++ ในวิชาการเขียนโปรแกรมและอัลกอฯ เมื่อตอนปีหนึ่งนานมากแล้วค่ะ
ที่เขียนนี่จะเป็น store procedure ของ mssql server 2005 เขียนไว้ต้นปีนี้เอง
ในการคำนวนมีการทด ปีอธิกสุรทินให้แล้วค่ะ
ยังไม่รับประกันว่าจะถูกต้อง 100% นะคะ
Code (C#)
/****** Object:  UserDefinedFunction [dbo].[DURATION_CALCULATION]    Script Date: 03/07/2010 05:38:31 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author:	    PROUD ,RJB.PNK.U.
-- Create date: 02-ÁÕ¤-2553
-- Description:	DURATION_CALCULATION
-- =============================================
-- @VAR_DATE_TIME < Ç´» »Ñ¨¨ØºÑ¹
CREATE FUNCTION [dbo].[DURATION_CALCULATION](@VAR_DATE_TIME DATETIME)
RETURNS NVARCHAR(50)
AS
BEGIN	
	DECLARE 
		@DAY_INTERVAL		INT,
		@MONTH_INTERVAL		INT,
		@YEAR_INTERVAL		INT,
		@TEMP				INT,
		@SLIDE_BEGIN_DATE	DATETIME ,
		@SLIDE_END_DATE		DATETIME ,
		@TEMP_DATE			DATETIME ,	
		@RET_STR			NVARCHAR(50);
		
		-- BEGIN CALCULATION USE SLIDE RULE ALGOL
		SET @SLIDE_BEGIN_DATE = @VAR_DATE_TIME ;
		SET @SLIDE_END_DATE = GETDATE() ;
		SET @RET_STR = '' ;
		
		-- HOW SLIDE SHIFT ??
		IF(YEAR(@SLIDE_END_DATE)=YEAR(@SLIDE_BEGIN_DATE))
		BEGIN			
			-- DAY SHIFT 
			-- ¡·´ä»à»ç¹ÇѹÊØ´·éÒ¢ͧà´×͹·ÕèáÅéÇáÅзÓãËéà»ç¹Åºà¾×èͧèÒ¡Ѻ DATEADD
			SET @TEMP = (DAY(@VAR_DATE_TIME) - 1) *(-1) ;				
			-- ¨Ñ´´Ö§ 仢éҧ˹éÒ´éǨӹǹÇѹ·Õèà·èҡѹ
			SET @SLIDE_BEGIN_DATE = DATEADD(DAY ,@TEMP ,@VAR_DATE_TIME) ;
			SET @SLIDE_END_DATE = DATEADD(DAY ,@TEMP ,GETDATE()) ;
			
			SET @YEAR_INTERVAL = 0 ;
			SET @MONTH_INTERVAL = MONTH(@SLIDE_END_DATE) - MONTH(@SLIDE_BEGIN_DATE);
			SET @DAY_INTERVAL = DAY(@SLIDE_END_DATE) -1 ;	
						
		END
		ELSE
		BEGIN
			-- YEAR SHIFT >> SET MONTH = 1 >> JAN
			SET @SLIDE_BEGIN_DATE = dbo.DATE_SERIAL( YEAR(@VAR_DATE_TIME) ,1 ,1 ) ;
			
			-- ËÒªèǧ¡Òà SHIFT
			SET @TEMP = (DATEDIFF( DAY ,@SLIDE_BEGIN_DATE ,@VAR_DATE_TIME ) * (-1)) -1 ;
			if ((YEAR(@SLIDE_BEGIN_DATE) % 4)=0)
			BEGIN
				SET @TEMP = @TEMP+1 ; -- »Õ͸ԡÃÊØ÷Թ
			END
			
			-- ´Ö§ÇѹÊØ´·éÒÂä»à·èÒæ¡Ñ¹ << that's call slide rule
			SET @SLIDE_END_DATE = DATEADD(DAY ,@TEMP ,GETDATE() ) ;
			
			SET @RET_STR = CONVERT(VARCHAR(20) ,@SLIDE_END_DATE ,102) + '|'  ;
			-- EASY TO CALCUTION NOW
			SET @YEAR_INTERVAL = YEAR(@SLIDE_END_DATE) - YEAR(@SLIDE_BEGIN_DATE) ;
			SET @MONTH_INTERVAL = MONTH(@SLIDE_END_DATE) -1 ;		
			SET @DAY_INTERVAL = DAY(@SLIDE_END_DATE) ;
			
			-- FINE TUNE
			IF (@YEAR_INTERVAL <0)
			BEGIN
				SET @YEAR_INTERVAL = 0 ;
			END			
			
			IF ((MONTH(@SLIDE_END_DATE)=12) AND (@DAY_INTERVAL=31))
			BEGIN
				SET @YEAR_INTERVAL = @YEAR_INTERVAL +1 ;
				SET @MONTH_INTERVAL = 0 ;
				SET @DAY_INTERVAL = 0 ;
			END	
			
			
			
			--SET @TEMP_DATE = 			
		END		
				
		-- ¨Ñ´ãËéÊǧÒÁ àÈÉã´ÁÕ¤èÒà·èҡѺÈÙ¹Âì¡ç¨ÐäÁè¹ÓÍÍ¡ÊÙèÊÒµһÃЪҪ¹¤èÐ
		SET @RET_STR = '' ;
		IF ( @YEAR_INTERVAL > 0)
		BEGIN  
			SET @RET_STR = @RET_STR + CONVERT(NVARCHAR(10) ,@YEAR_INTERVAL ) + N' »Õ ';
		END			
		
		IF ( @MONTH_INTERVAL > 0)
		BEGIN  
			SET @RET_STR = @RET_STR + CONVERT(NVARCHAR(10) ,@MONTH_INTERVAL ) + N' à´×͹ ' ;
		END
			
		IF ( @DAY_INTERVAL > 0)
		BEGIN  
			SET @RET_STR = @RET_STR + CONVERT(NVARCHAR(10) ,@DAY_INTERVAL ) + N' Çѹ ' ;
		END	
				
		/* 
		-- DEBUG ONLY	
		SET @RET_STR = @RET_STR + CONVERT(VARCHAR(20) ,@DAY_INTERVAL ) + ':'
				+ CONVERT(VARCHAR(20) ,@MONTH_INTERVAL ) + ':'
				+ CONVERT(VARCHAR(20) ,@YEAR_INTERVAL )  ;
	    */
	RETURN RTRIM(LTRIM(@RET_STR)) ;

END

GO






Go to : C# DateDiff ฟังก์ชั่นคำนวนอายุ C# ,Extension method ,MS SQL และ MySQL








ประวัติการแก้ไข
2010-08-27 11:58:50
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-08-27 11:58:06 By : blurEyes
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : คำนวณ วัน/เดือน/ปี เกิด asp.net(C#) คำนวณออกมาเห็น อายุ ? ปี ? เดือน ? วัน
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: นำเข้าสินค้าจากจีน, Taobao, เฟอร์นิเจอร์, ของพรีเมี่ยม, ร่ม, ปากกา, power bank, แฟลชไดร์ฟ, กระบอกน้ำ

Load balance : Server 03
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2024 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่