use Time::Local ; use Math::BigInt ; sub SysToHex { my ($sec,$min,$hour,$mday,$mon,$year)= @_ ; my $sectime = timegm($sec,$min,$hour,$mday,$mon,$year) ; my @hexReg1601 ; # Result # Conversion to intervals of 100 nanosecondes since 1970 my $secsystime = Math::BigInt -> new( $sectime ) ; my $nano100= Math::BigInt -> new(10000000) ; my$nanosecsys = $secsystime -> bmul ( $nano100 ) ; # 100 ns intervals since 1601 and 1970 # obtained within windows by manualy # entering the date 01/01/1970 my $hex1970 = '0x019DB1DED53E8000' ; my $nano1970 = X2I ( $hex1970 ) ; # Total number of 100ns intervals my $sec1601 = $nano1970 + $nanosecsys ; my $hex1601 = I2X ( $sec1601) ; # This coma separated format is expected by the registry my @liste1601 = split ( "", $hex1601 ) ; unshift (@liste1601, "0" ) unless ( @liste1601 % 2 == 0 ) ; while (@liste1601) { push ( @hexReg1601, splice ( @liste1601, -2 ), "," ) } pop @hexReg1601 ; # Gets rid of the last coma return join ( "", @hexReg1601 ) ; } sub X2I { my $n = shift; $n = '0' x (4 - (length($n) % 4)) . $n; my $m = Math::BigInt->new(0); while ( my $o = substr($n, 0, 4, '') ) { $m = $m * 65536 + hex $o; } $m; } sub I2X { my $i = shift; my $hex = ''; do { my $mod = $i % 16; $hex .= sprintf("%x", $mod); } while $i = $i / 16; scalar reverse $hex; }

In reply to Win32 SystemTimeToFileTime by ZlR

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.