@@ -846,7 +846,8 @@ convert_datetime_to_datetimestruct(pandas_datetime_metadata *meta,
846
846
dt = dt % perday ;
847
847
}
848
848
else {
849
- set_datetimestruct_days ((dt - (perday - 1 )) / perday , out );
849
+ set_datetimestruct_days (dt / perday - (dt % perday == 0 ? 0 : 1 ),
850
+ out );
850
851
dt = (perday - 1 ) + (dt + 1 ) % perday ;
851
852
}
852
853
out -> hour = dt ;
@@ -860,7 +861,8 @@ convert_datetime_to_datetimestruct(pandas_datetime_metadata *meta,
860
861
dt = dt % perday ;
861
862
}
862
863
else {
863
- set_datetimestruct_days ((dt - (perday - 1 )) / perday , out );
864
+ set_datetimestruct_days (dt / perday - (dt % perday == 0 ? 0 : 1 ),
865
+ out );
864
866
dt = (perday - 1 ) + (dt + 1 ) % perday ;
865
867
}
866
868
out -> hour = dt / 60 ;
@@ -875,7 +877,8 @@ convert_datetime_to_datetimestruct(pandas_datetime_metadata *meta,
875
877
dt = dt % perday ;
876
878
}
877
879
else {
878
- set_datetimestruct_days ((dt - (perday - 1 )) / perday , out );
880
+ set_datetimestruct_days (dt / perday - (dt % perday == 0 ? 0 : 1 ),
881
+ out );
879
882
dt = (perday - 1 ) + (dt + 1 ) % perday ;
880
883
}
881
884
out -> hour = dt / (60 * 60 );
@@ -891,7 +894,8 @@ convert_datetime_to_datetimestruct(pandas_datetime_metadata *meta,
891
894
dt = dt % perday ;
892
895
}
893
896
else {
894
- set_datetimestruct_days ((dt - (perday - 1 )) / perday , out );
897
+ set_datetimestruct_days (dt / perday - (dt % perday == 0 ? 0 : 1 ),
898
+ out );
895
899
dt = (perday - 1 ) + (dt + 1 ) % perday ;
896
900
}
897
901
out -> hour = dt / (60 * 60 * 1000LL );
@@ -908,7 +912,8 @@ convert_datetime_to_datetimestruct(pandas_datetime_metadata *meta,
908
912
dt = dt % perday ;
909
913
}
910
914
else {
911
- set_datetimestruct_days ((dt - (perday - 1 )) / perday , out );
915
+ set_datetimestruct_days (dt / perday - (dt % perday == 0 ? 0 : 1 ),
916
+ out );
912
917
dt = (perday - 1 ) + (dt + 1 ) % perday ;
913
918
}
914
919
out -> hour = dt / (60 * 60 * 1000000LL );
@@ -925,7 +930,8 @@ convert_datetime_to_datetimestruct(pandas_datetime_metadata *meta,
925
930
dt = dt % perday ;
926
931
}
927
932
else {
928
- set_datetimestruct_days ((dt - (perday - 1 )) / perday , out );
933
+ set_datetimestruct_days (dt / perday - (dt % perday == 0 ? 0 : 1 ),
934
+ out );
929
935
dt = (perday - 1 ) + (dt + 1 ) % perday ;
930
936
}
931
937
out -> hour = dt / (60 * 60 * 1000000000LL );
@@ -943,7 +949,8 @@ convert_datetime_to_datetimestruct(pandas_datetime_metadata *meta,
943
949
dt = dt % perday ;
944
950
}
945
951
else {
946
- set_datetimestruct_days ((dt - (perday - 1 )) / perday , out );
952
+ set_datetimestruct_days (dt / perday - (dt % perday == 0 ? 0 : 1 ),
953
+ out );
947
954
dt = (perday - 1 ) + (dt + 1 ) % perday ;
948
955
}
949
956
out -> hour = dt / (60 * 60 * 1000000000000LL );
0 commit comments