Bash 스크립트에서 경과된 시간을 계산하려면 어떻게 해야 합니까?
은 작작을 사용하여 인쇄합니다.date +"%T"
10:33:56
10:36:10
이 둘의 차이를 어떻게 계산하고 인쇄할 수 있을까요?
저는 다음과 같은 것을 받고 싶습니다.
2m 14s
한 Bash를 있다.SECONDS빌트인: 빌트인이 변수는 할당 시 속성을 유지합니다.할당 후 반환되는 값은 할당 후 초수에 할당된 값을 더한 값입니다.
따라서 설정하기만 하면 됩니다.SECONDS 이벤트를 에 timed 이벤트를으로 읽기만 .순히히읽읽읽읽읽SECONDS이치노
#!/usr/bin/env bash
SECONDS=0
# do some work
duration=$SECONDS
echo "$(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed."
에 하지 않기 date +%s(GNU 확장자), Bash가 지원하는 모든 시스템에 이식할 수 있습니다.
초
경과시간(초단위)을 측정하려면 다음 사항이 필요합니다.
- 경과한 초수를 나타내는 정수
- 이러한 정수를 사용 가능한 형식으로 변환하는 방법.
경과 초수의 정수값:
- 경과한 초수의 정수값을 구하는 Bash 내부방법은 다음 2가지가 있습니다.
Bash 변수 SEConds(SEConds가 설정되지 않은 경우 특수 속성이 손실됩니다).
SEConds 값을 0으로 설정합니다.
SECONDS=0 sleep 1 # Process to execute elapsedseconds=$SECONDS값
SECONDS「 」:a=$SECONDS sleep 1 # Process to execute elapsedseconds=$(( SECONDS - a ))
Bash printf 션션
%(datefmt)T:a="$(TZ=UTC0 printf '%(%s)T\n' '-1')" ### `-1` is the current time sleep 1 ### Process to execute elapsedseconds=$(( $(TZ=UTC0 printf '%(%s)T\n' '-1') - a ))
해당 정수를 사용 가능한 형식으로 변환
내부 bash 。printf을 사용하다
$ TZ=UTC0 printf '%(%H:%M:%S)T\n' 12345
03:25:45
유사하게
$ elapsedseconds=$((12*60+34))
$ TZ=UTC0 printf '%(%H:%M:%S)T\n' "$elapsedseconds"
00:12:34
그러나 실제로는 시간이 아니라 월클럭 시간을 인쇄하기 때문에 24시간 이상 지속되면 실패합니다.
$ hours=30;mins=12;secs=24
$ elapsedseconds=$(( ((($hours*60)+$mins)*60)+$secs ))
$ TZ=UTC0 printf '%(%H:%M:%S)T\n' "$elapsedseconds"
06:12:24
자세한 내용은 bash-hackers.org에서 확인하시기 바랍니다.
%(FORMAT)T는 FORMAT을 의 형식 문자열로 사용한 날짜 문자열을 출력합니다.연관된 인수는 Epoch 이후의 초수 또는 -1(현재 시간) 또는 -2(셸 시작 시간)입니다.대응하는 인수를 지정하지 않으면 현재 시각이 기본값으로 사용됩니다.
그냥 하는 게 것 요.textifyDuration $elpasedseconds서 ''는textifyDuration지속시간 인쇄의 또 다른 구현입니다.
textifyDuration() {
local duration=$1
local shiff=$duration
local secs=$((shiff % 60)); shiff=$((shiff / 60));
local mins=$((shiff % 60)); shiff=$((shiff / 60));
local hours=$shiff
local splur; if [ $secs -eq 1 ]; then splur=''; else splur='s'; fi
local mplur; if [ $mins -eq 1 ]; then mplur=''; else mplur='s'; fi
local hplur; if [ $hours -eq 1 ]; then hplur=''; else hplur='s'; fi
if [[ $hours -gt 0 ]]; then
txt="$hours hour$hplur, $mins minute$mplur, $secs second$splur"
elif [[ $mins -gt 0 ]]; then
txt="$mins minute$mplur, $secs second$splur"
else
txt="$secs second$splur"
fi
echo "$txt (from $duration seconds)"
}
GNU 날짜
포맷된 시간을 얻으려면 외부 도구(GNU 날짜)를 사용하여 거의 1년 동안 나노초를 포함해야 합니다.
수학 내부 날짜.
외산할 한 다 주세요.date:
date -u -d "0 $FinalDate seconds - $StartDate seconds" +"%H:%M:%S"
아, 아, 아, 아, 아, 게 있어요.00으로 하다것은필필 필필필다다
이렇게 수 합니다.date +"%T"date +"%s"값을 초단위로 저장(인쇄)할 수 있습니다.
이 명령어는 다음 명령어로 제한됩니다.
- 의 의 값
$StartDate★★★★★★★★★★★★★★★★★」$FinalDate초수 - 의 값
$FinalDate$StartDate. - 시차가 24시간 미만입니다.
- Hours, Minutes 및 Seconds 출력 형식을 사용할 수 있습니다.매우 쉽게 변경할 수 있습니다.
- -u UTC 시간을 사용할 수 있습니다."DST" 및 현지 시간 수정을 피하기 위해.
를 사용해야 하는 경우10:33:56스트링, 음, 몇 초로 변환해 주세요.또한 seconds는 sec로 생략할 수 있습니다.
string1="10:33:56"
string2="10:36:10"
StartDate=$(date -u -d "$string1" +"%s")
FinalDate=$(date -u -d "$string2" +"%s")
date -u -d "0 $FinalDate sec - $StartDate sec" +"%H:%M:%S"
시간 변환(상기와 같이)은 "오늘"의 시작과 상대적입니다.
이 개념은 다음과 같이 나노초까지 확장할 수 있습니다.
string1="10:33:56.5400022"
string2="10:36:10.8800056"
StartDate=$(date -u -d "$string1" +"%s.%N")
FinalDate=$(date -u -d "$string2" +"%s.%N")
date -u -d "0 $FinalDate sec - $StartDate sec" +"%H:%M:%S.%N"
더 긴해야 할 ( 값 " " " ( 364일)"을 사용해야 .%j (연도의 일수:
유사점:
string1="+10 days 10:33:56.5400022"
string2="+35 days 10:36:10.8800056"
StartDate=$(date -u -d "2000/1/1 $string1" +"%s.%N")
FinalDate=$(date -u -d "2000/1/1 $string2" +"%s.%N")
date -u -d "2000/1/1 $FinalDate sec - $StartDate sec" +"%j days %H:%M:%S.%N"
Output:
026 days 00:02:14.340003400
.1일수에서 하나.의 첫 1.date로 합니다.★★★★★★★★★★...
a=( $(date -u -d "2000/1/1 $FinalDate sec - $StartDate sec" +"%j days %H:%M:%S.%N") )
a[0]=$((10#${a[0]}-1)); echo "${a[@]}"
긴 시간의 사용은 유효하며 21.1.7 날짜의 예에 문서화되어 있습니다.
BusyBox 날짜
소형 디바이스에서 사용되는 도구(설치할 수 있는 실행 파일의 크기가 매우 작음):[Busy Box] (비지박스)
BusyBox 호출 날짜:
$ ln -s /bin/busybox date
후, 이것을 「이것」이라고 됩니다.date( 경로에 포함)(PATH 포함 디렉토리에 배치합니다).
또는 다음과 같은 별칭을 만듭니다.
$ alias date='busybox date'
BusyBox 날짜에는 입력 시간 형식을 받는 -D 옵션이 있습니다.
그 때문에, 많은 포맷이 시간으로서 이용되게 됩니다.-D 옵션을 사용하면 시간을 10:33:56으로 직접 변환할 수 있습니다.
date -D "%H:%M:%S" -d "10:33:56" +"%Y.%m.%d-%H:%M:%S"
그리고 위의 명령어 출력에서 알 수 있듯이 그 날은 "오늘"로 가정됩니다.에폭에서 시작하는 시간을 얻으려면:
$ string1="10:33:56"
$ date -u -D "%Y.%m.%d-%H:%M:%S" -d "1970.01.01-$string1" +"%Y.%m.%d-%H:%M:%S"
1970.01.01-10:33:56
BusyBox 날짜는 D 없이 (위 형식) 시간을 받을 수도 있습니다.
$ date -u -d "1970.01.01-$string1" +"%Y.%m.%d-%H:%M:%S"
1970.01.01-10:33:56
출력 포맷은 에폭 이후 초수가 될 수도 있습니다.
$ date -u -d "1970.01.01-$string1" +"%s"
52436
두 번 모두 약간의 bash 연산(BusyBox는 아직 계산을 수행할 수 없습니다):
string1="10:33:56"
string2="10:36:10"
t1=$(date -u -d "1970.01.01-$string1" +"%s")
t2=$(date -u -d "1970.01.01-$string2" +"%s")
echo $(( t2 - t1 ))
또는 포맷:
$ date -u -D "%s" -d "$(( t2 - t1 ))" +"%H:%M:%S"
00:02:14
방법은 다음과 같습니다.
START=$(date +%s);
sleep 1; # Your stuff
END=$(date +%s);
echo $((END-START)) | awk '{print int($1/60)":"int($1%60)}'
정말 간단해요.개시시의 초수를 취득해, 종료시의 초수를 취득해, 그 차이를 분:초단위로 인쇄합니다.
Another option is to use 또 다른 옵션은datediff부에서dateutils(http://www.fresse.org/dateutils/ #datediff):
$ datediff 10:33:56 10:36:10
134s
$ datediff 10:33:56 10:36:10 -f%H:%M:%S
0:2:14
$ datediff 10:33:56 10:36:10 -f%0H:%0M:%0S
00:02:14
Gawk도 쓸 수 있어요. mawk 1.3.4이다.strftime ★★★★★★★★★★★★★★★★★」mktime의 이전 " ", " "mawk ★★★★★★★★★★★★★★★★★」nawk 마세요
$ TZ=UTC0 awk 'BEGIN{print strftime("%T",mktime("1970 1 1 10 36 10")-mktime("1970 1 1 10 33 56"))}'
00:02:14
GNU를 .date:
$ date -ud@$(($(date -ud'1970-01-01 10:36:10' +%s)-$(date -ud'1970-01-01 10:33:56' +%s))) +%T
00:02:14
문제를 상기시키지 date명령어를 입력합니다. 수집되어 있는 이 될 수 .%T짜짜: :
ts_get_sec()
{
read -r h m s <<< $(echo $1 | tr ':' ' ' )
echo $(((h*60*60)+(m*60)+s))
}
start_ts=10:33:56
stop_ts=10:36:10
START=$(ts_get_sec $start_ts)
STOP=$(ts_get_sec $stop_ts)
DIFF=$((STOP-START))
echo "$((DIFF/60))m $((DIFF%60))s"
같은 방법으로 밀리초도 처리할 수 있습니다.
ts_get_msec()
{
read -r h m s ms <<< $(echo $1 | tr '.:' ' ' )
echo $(((h*60*60*1000)+(m*60*1000)+(s*1000)+ms))
}
start_ts=10:33:56.104
stop_ts=10:36:10.102
START=$(ts_get_msec $start_ts)
STOP=$(ts_get_msec $stop_ts)
DIFF=$((STOP-START))
min=$((DIFF/(60*1000)))
sec=$(((DIFF%(60*1000))/1000))
ms=$(((DIFF%(60*1000))%1000))
echo "${min}:${sec}.$ms"
Daniel Kamil Kozar의 답변에 따라 시간/분/초를 표시합니다.
echo "Duration: $(($DIFF / 3600 )) hours $((($DIFF % 3600) / 60)) minutes $(($DIFF % 60)) seconds"
따라서 전체 스크립트는 다음과 같습니다.
date1=$(date +"%s")
date2=$(date +"%s")
DIFF=$(($date2-$date1))
echo "Duration: $(($DIFF / 3600 )) hours $((($DIFF % 3600) / 60)) minutes $(($DIFF % 60)) seconds"
현재 (GNU Core Utilities) 7.4에서는-d다음 중 하나:
$ date -d -30days
Sat Jun 28 13:36:35 UTC 2014
$ date -d tomorrow
Tue Jul 29 13:40:55 UTC 2014
사용할 수 있는 단위는 일, 년, 월, 시간, 분 및 초입니다.
$ date -d tomorrow+2days-10minutes
Thu Jul 31 13:33:02 UTC 2014
여기 몇 가지 마법이 있습니다.
time1=14:30
time2=$( date +%H:%M ) # 16:00
diff=$( echo "$time2 - $time1" | sed 's%:%+(1/60)*%g' | bc -l )
echo $diff hours
# outputs 1.5 hours
sed 를 치환하다:1/60으로 변환하는 공식을 사용합니다.다음으로 에 의해 실행되는 시간 계산입니다.
% start=$(date +%s)
% echo "Diff: $(date -d @$(($(date +%s)-$start)) +"%M minutes %S seconds")"
Diff: 00 minutes 11 seconds
아니면 마무리를 조금 해서
alias timerstart='starttime=$(date +"%s")'
alias timerstop='echo seconds=$(($(date +"%s")-$starttime))'
그럼 이거면 되겠네.
timerstart; sleep 2; timerstop
seconds=2
date차이점을 제시하여 포맷할 수 있습니다(OS X 옵션 참조).
date -ujf%s $(($(date -jf%T "10:36:10" +%s) - $(date -jf%T "10:33:56" +%s))) +%T
# 00:02:14
date -ujf%s $(($(date -jf%T "10:36:10" +%s) - $(date -jf%T "10:33:56" +%s))) \
+'%-Hh %-Mm %-Ss'
# 0h 2m 14s
일부 문자열 처리에서는 이러한 빈 값을 제거할 수 있습니다.
date -ujf%s $(($(date -jf%T "10:36:10" +%s) - $(date -jf%T "10:33:56" +%s))) \
+'%-Hh %-Mm %-Ss' | sed "s/[[:<:]]0[hms] *//g"
# 2m 14s
이 방법은 먼저 시간을 지정하면 작동하지 않습니다.할 필요가 .$(($(date ...) - $(date ...)))로로 합니다.$(echo $(date ...) - $(date ...) | bc | tr -d -)
#!/bin/bash
START_TIME=$(date +%s)
sleep 4
echo "Total time elapsed: $(date -ud "@$(($(date +%s) - $START_TIME))" +%T) (HH:MM:SS)"
$ ./total_time_elapsed.sh
Total time elapsed: 00:00:04 (HH:MM:SS)
, 여기 '이렇게 하다'만.date는 "두 종료 합니다.
#!/bin/bash
# Save the current time
start_time=$( date +%s.%N )
# Tested program
sleep 1
# The current time after the program has finished
# minus the time when we started, in seconds.nanoseconds
elapsed_time=$( date +%s.%N --date="$start_time seconds ago" )
echo elapsed_time: $elapsed_time
그 결과, 다음과 같이 됩니다.
$ ./time_elapsed.sh
elapsed_time: 1.002257120
다음 함수를 정의합니다(예: ~/.bashrc).
time::clock() {
[ -z "$ts" ]&&{ ts=`date +%s%N`;return;}||te=`date +%s%N`
printf "%6.4f" $(echo $((te-ts))/1000000000 | bc -l)
unset ts te
}
이제 스크립트 일부의 실행 시간을 측정할 수 있습니다.
$ cat script.sh
# ... code ...
time::clock
sleep 0.5
echo "Total time: ${time::clock}"
# ... more code ...
$ ./script.sh
Total time: 0.5060
실행 병목 현상을 발견하는 것은 매우 유용합니다.
GNU 날짜(Ubuntu 14.04 LTS(Trusty Tahr)를 사용하여 nisetama 솔루션을 일반화하는 방법:
start=`date`
# <processing code>
stop=`date`
duration=`date -ud@$(($(date -ud"$stop" +%s)-$(date -ud"$start" +%s))) +%T`
echo $start
echo $stop
echo $duration
산출:
Wed Feb 7 12:31:16 CST 2018
Wed Feb 7 12:32:25 CST 2018
00:01:09
units
출력:
2411 units, 71 prefixes, 33 nonlinear units
You have: (10hr+36min+10s)-(10hr+33min+56s)
You want: s
* 134
/ 0.0074626866
You have: (10hr+36min+10s)-(10hr+33min+56s)
You want: min
* 2.2333333
/ 0.44776119
(그것들과 함께) 사용할 시차 스크립트가 필요했습니다.--endpos상대적입니다).파이썬
$ ./timediff.py 1:10:15 2:12:44
1:02:29
초단수도 지원됩니다.
$ echo "diff is `./timediff.py 10:51.6 12:44` (in hh:mm:ss format)"
diff is 0:01:52.4 (in hh:mm:ss format)
200과 120의 차이가 1시간 20m임을 알 수 있습니다.
$ ./timediff.py 120:0 200:0
1:20:0
또한 임의의 초수, 분수 또는 시간을 hh:mm:ss로 변환할 수 있습니다.
$ ./timediff.py 0 3600
1:00:0
$ ./timediff.py 0 3.25:0:0
3:15:0
timediff.py:
#!/usr/bin/python
import sys
def x60(h, m):
return 60*float(h) + float(m)
def seconds(time):
try:
h, m, s = time.split(':')
return x60(x60(h, m), s)
except ValueError:
try:
m, s = time.split(':')
return x60(m, s)
except ValueError:
return float(time)
def difftime(start, end):
d = seconds(end) - seconds(start)
print '%d:%02d:%s' % (d/3600,d/60%60,('%02f' % (d%60)).rstrip('0').rstrip('.'))
if __name__ == "__main__":
difftime(sys.argv[1], sys.argv[2])
오늘 로그 파일에서 날짜와 시간을 가져와 델타를 계산하는 스크립트를 작업하던 중 우연히 발견했습니다.아래 스크립트는 확실히 오버킬이며, 내 논리와 계산을 확인해 볼 것을 강력히 권장합니다.
#!/bin/bash
dTime=""
tmp=""
#firstEntry="$(head -n 1 "$LOG" | sed 's/.*] \([0-9: -]\+\).*/\1/')"
firstEntry="2013-01-16 01:56:37"
#lastEntry="$(tac "$LOG" | head -n 1 | sed 's/.*] \([0-9: -]\+\).*/\1/')"
lastEntry="2014-09-17 18:24:02"
# I like to make the variables easier to parse
firstEntry="${firstEntry//-/ }"
lastEntry="${lastEntry//-/ }"
firstEntry="${firstEntry//:/ }"
lastEntry="${lastEntry//:/ }"
# Remove the following lines in production
echo "$lastEntry"
echo "$firstEntry"
# Compute days in last entry
for i in `seq 1 $(echo $lastEntry|awk '{print $2}')`; do {
case "$i" in
1|3|5|7|8|10|12 )
dTime=$(($dTime+31))
;;
4|6|9|11 )
dTime=$(($dTime+30))
;;
2 )
dTime=$(($dTime+28))
;;
esac
} done
# Do leap year calculations for all years between first and last entry
for i in `seq $(echo $firstEntry|awk '{print $1}') $(echo $lastEntry|awk '{print $1}')`; do {
if [ $(($i%4)) -eq 0 ] && [ $(($i%100)) -eq 0 ] && [ $(($i%400)) -eq 0 ]; then {
if [ "$i" = "$(echo $firstEntry|awk '{print $1}')" ] && [ $(echo $firstEntry|awk '{print $2}') -lt 2 ]; then {
dTime=$(($dTime+1))
} elif [ $(echo $firstEntry|awk '{print $2}') -eq 2 ] && [ $(echo $firstEntry|awk '{print $3}') -lt 29 ]; then {
dTime=$(($dTime+1))
} fi
} elif [ $(($i%4)) -eq 0 ] && [ $(($i%100)) -ne 0 ]; then {
if [ "$i" = "$(echo $lastEntry|awk '{print $1}')" ] && [ $(echo $lastEntry|awk '{print $2}') -gt 2 ]; then {
dTime=$(($dTime+1))
} elif [ $(echo $lastEntry|awk '{print $2}') -eq 2 ] && [ $(echo $lastEntry|awk '{print $3}') -ne 29 ]; then {
dTime=$(($dTime+1))
} fi
} fi
} done
# Subtract days in first entry
for i in `seq 1 $(echo $firstEntry|awk '{print $2}')`; do {
case "$i" in
1|3|5|7|8|10|12 )
dTime=$(($dTime-31))
;;
4|6|9|11 )
dTime=$(($dTime-30))
;;
2 )
dTime=$(($dTime-28))
;;
esac
} done
dTime=$(($dTime+$(echo $lastEntry|awk '{print $3}')-$(echo $firstEntry|awk '{print $3}')))
# The above gives number of days for sample. Now
# we need hours, minutes, and seconds
# As a bit of hackery I just put the stuff
# in the best order for use in a for loop
dTime="$(($(echo $lastEntry|awk '{print $6}')-$(echo $firstEntry|awk '{print $6}'))) $(($(echo $lastEntry|awk '{print $5}')-$(echo $firstEntry|awk '{print $5}'))) $(($(echo $lastEntry|awk '{print $4}')-$(echo $firstEntry|awk '{print $4}'))) $dTime"
tmp=1
for i in $dTime; do {
if [ $i -lt 0 ]; then {
case "$tmp" in
1 )
tmp="$(($(echo $dTime|awk '{print $1}')+60)) $(($(echo $dTime|awk '{print $2}')-1))"
dTime="$tmp $(echo $dTime|awk '{print $3" "$4}')"
tmp=1
;;
2 )
tmp="$(($(echo $dTime|awk '{print $2}')+60)) $(($(echo $dTime|awk '{print $3}')-1))"
dTime="$(echo $dTime|awk '{print $1}') $tmp $(echo $dTime|awk '{print $4}')"
tmp=2
;;
3 )
tmp="$(($(echo $dTime|awk '{print $3}')+24)) $(($(echo $dTime|awk '{print $4}')-1))"
dTime="$(echo $dTime|awk '{print $1" "$2}') $tmp"
tmp=3
;;
esac
} fi
tmp=$(($tmp+1))
} done
echo "The sample time is $(echo $dTime|awk '{print $4}') days, $(echo $dTime|awk '{print $3}') hours, $(echo $dTime|awk '{print $2}') minutes, and $(echo $dTime|awk '{print $1}') seconds."
다음과 같이 출력됩니다.
2012 10 16 01 56 37
2014 09 17 18 24 02
The sample time is 700 days, 16 hours, 27 minutes, and 25 seconds.
스크립트를 약간 수정하여 스탠드아론(예: 변수 값만 설정)으로 했습니다만, 일반적인 아이디어도 생각할 수 있습니다.음수 값을 확인하는 추가 오류가 필요할 수 있습니다.
이미 시차를 계산하고 있으며, 1일 미만인 경우 출력을 sorta 형식으로 포맷하는 실제 프린지 사용 예를 들어,
HH MM SS.xxxx
24-hour포맷, 소수점 오른쪽 자릿수가 인쇄되는 것에 주의해 주세요.
jot -w 'obase = 60; %.3f' - 1.3219567 300 73.6543211 | bc
01.19 19
01 14.58 33
02 28.37 51
03 42.17 06 # 3 mins 42 secs
04 55.56 20
...
...
19 38 10.54 32 # 19 hrs 38 mins 10 secs
#
# (or 7:38pm, if it's representing absolute time)
하지만 그것은 확실히 대략적인 수치를 얻기 위한 빠른 더티 방법이다.
다음은 Bash 구현입니다(다른 스택 오버플로 응답에서 가져온 비트 포함;-).
function countTimeDiff() {
timeA=$1 # 09:59:35
timeB=$2 # 17:32:55
# feeding variables by using read and splitting with IFS
IFS=: read ah am as <<< "$timeA"
IFS=: read bh bm bs <<< "$timeB"
# Convert hours to minutes.
# The 10# is there to avoid errors with leading zeros
# by telling bash that we use base 10
secondsA=$((10#$ah*60*60 + 10#$am*60 + 10#$as))
secondsB=$((10#$bh*60*60 + 10#$bm*60 + 10#$bs))
DIFF_SEC=$((secondsB - secondsA))
echo "The difference is $DIFF_SEC seconds.";
SEC=$(($DIFF_SEC%60))
MIN=$((($DIFF_SEC-$SEC)%3600/60))
HRS=$((($DIFF_SEC-$MIN*60)/3600))
TIME_DIFF="$HRS:$MIN:$SEC";
echo $TIME_DIFF;
}
$ countTimeDiff 2:15:55 2:55:16
The difference is 2361 seconds.
0:39:21
테스트되지 않아 버그가 있을 수 있습니다.
언급URL : https://stackoverflow.com/questions/8903239/how-can-i-calculate-time-elapsed-in-a-bash-script
'programing' 카테고리의 다른 글
| 메뉴, 툴바, 스택 패널 등의 세로 구분 컨트롤 - 가능합니까? (0) | 2023.04.14 |
|---|---|
| SQL Server CTE 및 재귀 예시 (0) | 2023.04.14 |
| XAML에서 제어 중심을 중심으로 회전하는 방법 (0) | 2023.04.14 |
| Windows에서 새로운 프로세스를 작성하는 것이 Linux보다 비싼 이유는 무엇입니까? (0) | 2023.04.14 |
| SQL Server 접속이 동작하는 경우가 있다 (0) | 2023.04.14 |