PHPFixing
  • Privacy Policy
  • TOS
  • Ask Question
  • Contact Us
  • Home
  • PHP
  • Programming
  • SQL Injection
  • Web3.0

Thursday, August 11, 2022

[FIXED] How to Convert DateTime.Now in 0 to 1 decimal format in c#

 August 11, 2022     c#, datetime, decimal, format, timezone     No comments   

Issue

I would like to convert the current time to a decimal representing a fraction of the day. For example, if the day starts at 0, then 12:00 PM should be 0.5.

I need to send that value to an API, and it needs to be in that format. i.e.

"LAST_PRINT_TIME":0.22020833"

Solution

Depending on the precision requirements of your result, this may help you:

DateTime now = DateTime.Now;
double dayFraction = (now.Hour + now.Minute / 60d) / 24d;

now.Minute / 60d calculates the fraction of the current hour (so if the time is XX:15 PM this will give 0.25). This is then added to the current hour. This value is then divided by 24 to obtain the final result.

For example, 3:45 PM would go as follows: (15 + 45 / 60) / 24) => (15 + 0.75) / 24 => 15.75 / 24 => 0.65625

So 3:45 PM, which is 15.75 hours into the day, would be 0.65625 (or 65.625%) of the day.


Or, as @madreflection mentioned in a comment, you could use .ToOADate() as well. In this case, you could do something like:

DateTime now = DateTime.Now;
double dayFraction = now.ToOADate() - now.Date.ToOADate();


Answered By - elmer007
Answer Checked By - Robin (PHPFixing Admin)
  • Share This:  
  •  Facebook
  •  Twitter
  •  Stumble
  •  Digg
Newer Post Older Post Home

0 Comments:

Post a Comment

Note: Only a member of this blog may post a comment.

Total Pageviews

Featured Post

Why Learn PHP Programming

Why Learn PHP Programming A widely-used open source scripting language PHP is one of the most popular programming languages in the world. It...

Subscribe To

Posts
Atom
Posts
Comments
Atom
Comments

Copyright © PHPFixing