@@ -323,5 +323,93 @@ public void Epoch_Test()
323323 Assert . IsNotNull ( epoch ) ;
324324 Assert . AreEqual ( new DateTime ( 1970 , 1 , 1 , 0 , 0 , 0 , DateTimeKind . Utc ) , epoch ) ;
325325 }
326+
327+ [ DataRow ( "2025-04-11 12:14:55.001" , false ) ]
328+ [ DataRow ( "2025-04-11 00:00:00.001" , false ) ]
329+ [ DataRow ( "2025-04-11 00:00:00.000" , true ) ]
330+ [ DataRow ( "2025-04-11 00:00:00" , true ) ]
331+ [ DataRow ( "2025-04-11" , true ) ]
332+ [ TestMethod ]
333+ public void IsOnlyDate_Test ( string date , bool resultExcepted )
334+ {
335+ var dateTime = Convert . ToDateTime ( date ) ;
336+
337+ var isDateOnly = dateTime . IsOnlyDate ( ) ;
338+
339+ Assert . IsNotNull ( isDateOnly ) ;
340+ Assert . AreEqual ( resultExcepted , isDateOnly ) ;
341+ }
342+
343+ [ DataRow ( "2025-04-11 12:14:55.001" , false ) ]
344+ [ DataRow ( "2025-04-11 00:00:00.001" , false ) ]
345+ [ DataRow ( "2025-04-11 00:00:00.000" , true ) ]
346+ [ DataRow ( "2025-04-11 00:00:00" , true ) ]
347+ [ DataRow ( "2025-04-11" , true ) ]
348+ [ TestMethod ]
349+ public void IsOnlyDate_Nullable_Test ( string date , bool resultExcepted )
350+ {
351+ var dateTime = ( DateTime ? ) Convert . ToDateTime ( date ) ;
352+
353+ var isDateOnly = dateTime . IsOnlyDate ( ) ;
354+
355+ Assert . IsNotNull ( isDateOnly ) ;
356+ Assert . AreEqual ( resultExcepted , isDateOnly ) ;
357+ }
358+
359+ [ DataRow ( "2025-04-11 12:14:55.001" , "2025-04-11 12:14:55.000" ) ]
360+ [ DataRow ( "2025-04-11 00:00:00.001" , "2025-04-11 00:00:00.000" ) ]
361+ [ DataRow ( "2025-04-11 00:00:00.000" , "2025-04-11 00:00:00.000" ) ]
362+ [ DataRow ( "2025-04-11 00:00:00" , "2025-04-11 00:00:00.000" ) ]
363+ [ DataRow ( "2025-04-11" , "2025-04-11 00:00:00.000" ) ]
364+ [ TestMethod ]
365+ public void ForceMillisecondsToZero_Test ( string date , string resultExcepted )
366+ {
367+ var dateTime = ( DateTime ) Convert . ToDateTime ( date ) ;
368+ var exceptedDateTime = ( DateTime ) Convert . ToDateTime ( resultExcepted ) ;
369+
370+ var newDateTime = dateTime . ForceMillisecondsToZero ( ) ;
371+
372+ Assert . IsNotNull ( newDateTime ) ;
373+ Assert . AreEqual ( exceptedDateTime , newDateTime ) ;
374+ }
375+
376+ [ DataRow ( "2025-04-11 12:14:55.001" , "2025-04-11 12:14:55.000" ) ]
377+ [ DataRow ( "2025-04-11 00:00:00.001" , "2025-04-11 00:00:00.000" ) ]
378+ [ DataRow ( "2025-04-11 00:00:00.000" , "2025-04-11 00:00:00.000" ) ]
379+ [ DataRow ( "2025-04-11 00:00:00" , "2025-04-11 00:00:00.000" ) ]
380+ [ DataRow ( "2025-04-11" , "2025-04-11 00:00:00.000" ) ]
381+ [ TestMethod ]
382+ public void ForceMillisecondsToZero_Nullable_Test ( string date , string resultExcepted )
383+ {
384+ var dateTime = ( DateTime ? ) Convert . ToDateTime ( date ) ;
385+ var exceptedDateTime = ( DateTime ? ) Convert . ToDateTime ( resultExcepted ) ;
386+
387+ var newDateTime = dateTime . ForceMillisecondsToZero ( ) ;
388+
389+ Assert . IsNotNull ( newDateTime ) ;
390+ Assert . AreEqual ( exceptedDateTime , newDateTime ) ;
391+ }
392+
393+ [ DataRow ( "2025-04-11 12:14:55.001" , "2025-04-11 12:14:55.000" ) ]
394+ [ DataRow ( "2025-04-11 00:00:00.001" , "2025-04-11 00:00:00.000" ) ]
395+ [ DataRow ( "2025-04-11 00:00:00.000" , "2025-04-11 00:00:00.000" ) ]
396+ [ DataRow ( "2025-04-11 00:00:00" , "2025-04-11 00:00:00.000" ) ]
397+ [ DataRow ( "2025-04-11" , "2025-04-11 00:00:00.000" ) ]
398+ [ DataRow ( "" , "" ) ]
399+ [ TestMethod ]
400+ public void ForceMillisecondsToZero_Nullable_WithDefaultDate_Test ( string date , string resultExcepted )
401+ {
402+ var now = DateTime . Now ;
403+ var dateTime = ( DateTime ? ) Convert . ToDateTime ( date . IfNullOrEmpty ( now . ToString ( "yyyy-MM-dd HH:mm:ss" ) ) ) ;
404+ var exceptedDateTime =
405+ date . IsNullOrEmpty ( )
406+ ? now . ForceMillisecondsToZero ( )
407+ : ( DateTime ? ) Convert . ToDateTime ( resultExcepted ) ;
408+
409+ var newDateTime = dateTime . ForceMillisecondsToZero ( now ) ;
410+
411+ Assert . IsNotNull ( newDateTime ) ;
412+ Assert . AreEqual ( exceptedDateTime , newDateTime ) ;
413+ }
326414 }
327415}
0 commit comments