[{"data":1,"prerenderedAt":476},["ShallowReactive",2],{"blog:2006:dotnettipsuptimeagerounding":3,"blogMore-Development":462,"comments-dotnettipsuptimeagerounding":475},{"id":4,"title":5,"body":6,"category":445,"commentCount":446,"date":447,"description":12,"excerpt":448,"extension":449,"filenames":450,"hidden":451,"image":450,"meta":452,"minutes":53,"navigation":56,"path":453,"seo":454,"showCategory":450,"stem":455,"tags":456,"updated":450,"url":459,"wordCount":460,"__hash__":461},"content\u002Fblog\u002F2006\u002Fdotnettipsuptimeagerounding.md",".NET quick samples: Up-times, ages, rounding to n places",{"type":7,"value":8,"toc":440},"minimark",[9,13,18,163,167,308,312,430,436],[10,11,12],"p",{},"Just a few quick .NET samples for performing some common tasks that the .NET Framework doesn’t do for you:",[14,15,17],"h2",{"id":16},"system-uptime","System uptime",[19,20,25],"pre",{"className":21,"code":22,"language":23,"meta":24,"style":24},"language-csharp shiki shiki-themes everforest-light dracula","using System.Diagnostics;\n\npublic TimeSpan GetUptime() {\n    var systemUpTime = new PerformanceCounter(\"System\", \"System Up Time\");\n    systemUpTime.NextValue(); \u002F\u002F Required to work!\n    return TimeSpan.FromSeconds(systemUpTime.NextValue())));\n}\n","csharp","",[26,27,28,51,58,76,121,137,157],"code",{"__ignoreMap":24},[29,30,33,37,41,45,48],"span",{"class":31,"line":32},"line",1,[29,34,36],{"class":35},"smiwp","using",[29,38,40],{"class":39},"sjYfO"," System",[29,42,44],{"class":43},"s6Vpi",".",[29,46,47],{"class":39},"Diagnostics",[29,49,50],{"class":43},";\n",[29,52,54],{"class":31,"line":53},2,[29,55,57],{"emptyLinePlaceholder":56},true,"\n",[29,59,61,65,69,73],{"class":31,"line":60},3,[29,62,64],{"class":63},"s9HRq","public",[29,66,68],{"class":67},"snuxY"," TimeSpan",[29,70,72],{"class":71},"sS4Kt"," GetUptime",[29,74,75],{"class":43},"() {\n",[29,77,79,83,86,89,92,95,98,102,106,108,111,113,116,118],{"class":31,"line":78},4,[29,80,82],{"class":81},"sXAHl","    var",[29,84,85],{"class":43}," systemUpTime ",[29,87,88],{"class":63},"=",[29,90,91],{"class":35}," new",[29,93,94],{"class":67}," PerformanceCounter",[29,96,97],{"class":43},"(",[29,99,101],{"class":100},"sciFF","\"",[29,103,105],{"class":104},"sJQOs","System",[29,107,101],{"class":100},[29,109,110],{"class":43},", ",[29,112,101],{"class":100},[29,114,115],{"class":104},"System Up Time",[29,117,101],{"class":100},[29,119,120],{"class":43},");\n",[29,122,124,127,130,133],{"class":31,"line":123},5,[29,125,126],{"class":43},"    systemUpTime.",[29,128,129],{"class":71},"NextValue",[29,131,132],{"class":43},"(); ",[29,134,136],{"class":135},"sSX4p","\u002F\u002F Required to work!\n",[29,138,140,143,146,149,152,154],{"class":31,"line":139},6,[29,141,142],{"class":35},"    return",[29,144,145],{"class":43}," TimeSpan.",[29,147,148],{"class":71},"FromSeconds",[29,150,151],{"class":43},"(systemUpTime.",[29,153,129],{"class":71},[29,155,156],{"class":43},"())));\n",[29,158,160],{"class":31,"line":159},7,[29,161,162],{"class":43},"}\n",[14,164,166],{"id":165},"calculating-age","Calculating age",[19,168,170],{"className":21,"code":169,"language":23,"meta":24,"style":24},"public int GetAge(DateTime birthday) { \n  return DateTime.Now.Year - birthday.Year -\n      (((DateTime.Now.Month \u003C birthday.Month) ||\n      (DateTime.Now.Month == birthday.Month &&\n      DateTime.Now.Day \u003C birthday.Day)) ? 1 : 0);\n}\n",[26,171,172,194,222,247,268,304],{"__ignoreMap":24},[29,173,174,176,179,182,184,187,191],{"class":31,"line":32},[29,175,64],{"class":63},[29,177,178],{"class":81}," int",[29,180,181],{"class":71}," GetAge",[29,183,97],{"class":43},[29,185,186],{"class":67},"DateTime",[29,188,190],{"class":189},"s7cAX"," birthday",[29,192,193],{"class":43},") { \n",[29,195,196,199,202,206,208,211,214,217,219],{"class":31,"line":53},[29,197,198],{"class":35},"  return",[29,200,201],{"class":43}," DateTime.",[29,203,205],{"class":204},"sSKRk","Now",[29,207,44],{"class":43},[29,209,210],{"class":204},"Year",[29,212,213],{"class":63}," -",[29,215,216],{"class":43}," birthday.",[29,218,210],{"class":204},[29,220,221],{"class":63}," -\n",[29,223,224,227,229,231,234,237,239,241,244],{"class":31,"line":60},[29,225,226],{"class":43},"      (((DateTime.",[29,228,205],{"class":204},[29,230,44],{"class":43},[29,232,233],{"class":204},"Month",[29,235,236],{"class":63}," \u003C",[29,238,216],{"class":43},[29,240,233],{"class":204},[29,242,243],{"class":43},") ",[29,245,246],{"class":63},"||\n",[29,248,249,252,254,256,258,261,263,265],{"class":31,"line":78},[29,250,251],{"class":43},"      (DateTime.",[29,253,205],{"class":204},[29,255,44],{"class":43},[29,257,233],{"class":204},[29,259,260],{"class":63}," ==",[29,262,216],{"class":43},[29,264,233],{"class":204},[29,266,267],{"class":63}," &&\n",[29,269,270,273,275,277,280,282,284,286,289,292,296,299,302],{"class":31,"line":123},[29,271,272],{"class":43},"      DateTime.",[29,274,205],{"class":204},[29,276,44],{"class":43},[29,278,279],{"class":204},"Day",[29,281,236],{"class":63},[29,283,216],{"class":43},[29,285,279],{"class":204},[29,287,288],{"class":43},")) ",[29,290,291],{"class":63},"?",[29,293,295],{"class":294},"s3Ipq"," 1",[29,297,298],{"class":63}," :",[29,300,301],{"class":294}," 0",[29,303,120],{"class":43},[29,305,306],{"class":31,"line":139},[29,307,162],{"class":43},[14,309,311],{"id":310},"rounding-to-n-decimal-places","Rounding to n decimal places",[19,313,315],{"className":21,"code":314,"language":23,"meta":24,"style":24},"public decimal ArithmeticRound(decimal d, int decimals) {\n    var power = (decimal)Math.Pow(10, decimals);\n    return (decimal.Floor((Math.Abs(d) * power) + 0.4m) \u002F power) * Math.Sign(d);\n}\n",[26,316,317,346,374,426],{"__ignoreMap":24},[29,318,319,321,324,327,329,332,335,337,340,343],{"class":31,"line":32},[29,320,64],{"class":63},[29,322,323],{"class":81}," decimal",[29,325,326],{"class":71}," ArithmeticRound",[29,328,97],{"class":43},[29,330,331],{"class":81},"decimal",[29,333,334],{"class":189}," d",[29,336,110],{"class":43},[29,338,339],{"class":81},"int",[29,341,342],{"class":189}," decimals",[29,344,345],{"class":43},") {\n",[29,347,348,350,353,355,358,360,363,366,368,371],{"class":31,"line":53},[29,349,82],{"class":81},[29,351,352],{"class":43}," power ",[29,354,88],{"class":63},[29,356,357],{"class":43}," (",[29,359,331],{"class":81},[29,361,362],{"class":43},")Math.",[29,364,365],{"class":71},"Pow",[29,367,97],{"class":43},[29,369,370],{"class":294},"10",[29,372,373],{"class":43},", decimals);\n",[29,375,376,378,380,382,384,387,390,393,396,399,402,405,408,410,413,415,417,420,423],{"class":31,"line":60},[29,377,142],{"class":35},[29,379,357],{"class":43},[29,381,331],{"class":81},[29,383,44],{"class":43},[29,385,386],{"class":71},"Floor",[29,388,389],{"class":43},"((Math.",[29,391,392],{"class":71},"Abs",[29,394,395],{"class":43},"(d) ",[29,397,398],{"class":63},"*",[29,400,401],{"class":43}," power) ",[29,403,404],{"class":63},"+",[29,406,407],{"class":294}," 0.4m",[29,409,243],{"class":43},[29,411,412],{"class":63},"\u002F",[29,414,401],{"class":43},[29,416,398],{"class":63},[29,418,419],{"class":43}," Math.",[29,421,422],{"class":71},"Sign",[29,424,425],{"class":43},"(d);\n",[29,427,428],{"class":31,"line":78},[29,429,162],{"class":43},[10,431,432],{},[433,434,435],"em",{},"[)amien",[437,438,439],"style",{},"html pre.shiki code .smiwp, html code.shiki .smiwp{--shiki-default:#F85552;--shiki-dark:#FF79C6}html pre.shiki code .sjYfO, html code.shiki .sjYfO{--shiki-default:#DF69BA;--shiki-default-font-style:inherit;--shiki-dark:#8BE9FD;--shiki-dark-font-style:italic}html pre.shiki code .s6Vpi, html code.shiki .s6Vpi{--shiki-default:#5C6A72;--shiki-dark:#F8F8F2}html pre.shiki code .s9HRq, html code.shiki .s9HRq{--shiki-default:#F57D26;--shiki-dark:#FF79C6}html pre.shiki code .snuxY, html code.shiki .snuxY{--shiki-default:#3A94C5;--shiki-default-font-style:inherit;--shiki-dark:#8BE9FD;--shiki-dark-font-style:italic}html pre.shiki code .sS4Kt, html code.shiki .sS4Kt{--shiki-default:#8DA101;--shiki-dark:#50FA7B}html pre.shiki code .sXAHl, html code.shiki .sXAHl{--shiki-default:#3A94C5;--shiki-dark:#FF79C6}html pre.shiki code .sciFF, html code.shiki .sciFF{--shiki-default:#8DA101;--shiki-dark:#E9F284}html pre.shiki code .sJQOs, html code.shiki .sJQOs{--shiki-default:#8DA101;--shiki-dark:#F1FA8C}html pre.shiki code .sSX4p, html code.shiki .sSX4p{--shiki-default:#939F91;--shiki-default-font-style:italic;--shiki-dark:#6272A4;--shiki-dark-font-style:inherit}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .s7cAX, html code.shiki .s7cAX{--shiki-default:#5C6A72;--shiki-default-font-style:inherit;--shiki-dark:#FFB86C;--shiki-dark-font-style:italic}html pre.shiki code .sSKRk, html code.shiki .sSKRk{--shiki-default:#35A77C;--shiki-dark:#F8F8F2}html pre.shiki code .s3Ipq, html code.shiki .s3Ipq{--shiki-default:#DF69BA;--shiki-dark:#BD93F9}",{"title":24,"searchDepth":53,"depth":53,"links":441},[442,443,444],{"id":16,"depth":53,"text":17},{"id":165,"depth":53,"text":166},{"id":310,"depth":53,"text":311},"Development",0,"2006-10-20T14:39:42+00:00","[object Object]","md",null,false,{},"\u002Fblog\u002F2006\u002Fdotnettipsuptimeagerounding",{"title":5,"description":12},"blog\u002F2006\u002Fdotnettipsuptimeagerounding",[457,458],".NET","C#","\u002Fblog\u002F2006\u002Fdotnettipsuptimeagerounding\u002F",272,"O1bQXMY4Q_QrbmL7A7kJCqN80wYOMlF_wSvQAUYAT38",[463,467,471],{"title":464,"date":465,"url":466},"Transactions in the MongoDB EF Core Provider","2025-10-25","\u002Fblog\u002F2025\u002Fmongodb-explicit-transactions\u002F",{"title":468,"date":469,"url":470},"Queryable Encryption with the MongoDB EF Core Provider","2025-09-22","\u002Fblog\u002F2025\u002Fmongodb-queryable-encryption\u002F",{"title":472,"date":473,"url":474},"Lazy Loading with EF Core Proxies","2025-04-02","\u002Fblog\u002F2025\u002Fef-proxies\u002F",[],1780900532647]