_date2elapsed.ado

来自「是一个经济学管理应用软件 很难找的 但是经济学学生又必须用到」· ADO 代码 · 共 76 行

ADO
76
字号
*! version 1.0.5  25sep2003
program _date2elapsed, sclass
	version 8.1
	syntax [, format(string) datelist(string asis) DIsplay ]

	local fmt = substr("`format'",3,1)
	if !inlist("`fmt'","d","w","m","q","h","y") {
		sreturn clear
		sreturn local args `"`datelist'"'
		sreturn local orig `"`datelist'"'
		exit
	}


	// Translate all dates to Stata's elapsed time values
	while `"`datelist'"' != "" {
		gettoken arg datelist : datelist ,		///
			qed(qed) parse(" ,/()") match(par)
		if `qed' {
			local orig `"`orig' `"`arg'"'"'
		}
		else	local orig `orig' `arg'
		if "`arg'" == "," {
			continue
		}
		else if "`par'" == "(" {
			capture confirm integer `arg'
			if c(rc) & "`format'" != "" {
				Evaluate `fmt' `"`arg'"'
				local args `"`args' `r(date)'"'
			}
			else	local args `"`args' (`arg')"'
		}
		else if `qed' {
			local args `"`args' `"`arg'"'"'
		}
		else {
			if "`format'" != "" {
				Evaluate `fmt' `arg'
				local arg `r(date)'
			}
			local args `"`args' `arg'"'
		}
	}

	sreturn clear
	sreturn local fmt `"`fmt'"'
	sreturn local args `"`:list retok args'"'
	sreturn local orig `"`:list retok orig'"'

	if "`display'" != "" {
		di as txt "fmt  = |" as res `"`s(fmt)'"'  as txt "|"
		di as txt "args = |" as res `"`s(args)'"' as txt "|"
		di as txt "orig = |" as res `"`s(orig)'"' as txt "|"
	}
end

// syntax: Evaluate <format_unit> <date_string>
// 
// Use the function associated with the <format_unit> to convert <date_string>
// to a Stata elapsed time value.  The <format_unit> functions are:
//
// 	d() w() m() q() h() y()

program Evaluate, rclass
	args format date
	capture {
		local val = `format'(`date')
		confirm integer number `val'
	}
	if !c(rc) local date `val'
	return local date `date'
end

exit

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?