Files
libreoffice/basic/source/inc/date.hxx
Andreas Heinisch 8730575016 tdf#161469 - Basic: align implementation now with the now function in calc
Align the implementation of the now function in basic with the now function in calc to include the also nanoseconds. The precision is limited to milliseconds to avoid comparision inaccuracies.

Change-Id: Ia85b653898f5849f67a171749725faab976b2a8a
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/168706
Reviewed-by: Andreas Heinisch <andreas.heinisch@yahoo.de>
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
Tested-by: Jenkins
2024-06-20 14:36:50 +02:00

61 lines
2.4 KiB
C++

/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
/*
* This file is part of the LibreOffice project.
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*
* This file incorporates work covered by the following license notice:
*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed
* with this work for additional information regarding copyright
* ownership. The ASF licenses this file to you under the Apache
* License, Version 2.0 (the "License"); you may not use this file
* except in compliance with the License. You may obtain a copy of
* the License at http://www.apache.org/licenses/LICENSE-2.0 .
*/
#pragma once
#include <com/sun/star/util/Date.hpp>
#include <com/sun/star/util/Time.hpp>
#include <com/sun/star/util/DateTime.hpp>
#include <basic/sbxvar.hxx>
enum class SbDateCorrection
{
None,
RollOver,
TruncateToMonth
};
bool implDateSerial( sal_Int16 nYear, sal_Int16 nMonth, sal_Int16 nDay, bool bUseTwoDigitYear, SbDateCorrection eCorr, double& rdRet );
double implTimeSerial(sal_Int16 nHour, sal_Int16 nMinute, sal_Int16 nSecond,
sal_Int32 nMilliSecond);
bool implDateTimeSerial(sal_Int16 nYear, sal_Int16 nMonth, sal_Int16 nDay, sal_Int16 nHour,
sal_Int16 nMinute, sal_Int16 nSecond, sal_Int32 nMilliSecond,
double& rdRet);
sal_Int16 implGetWeekDay( double aDate, bool bFirstDayParam = false, sal_Int16 nFirstDay = 0 );
sal_Int16 implGetDateYear( double aDate );
sal_Int16 implGetDateMonth( double aDate );
sal_Int16 implGetDateDay( double aDate );
sal_Int16 implGetHour( double dDate );
sal_Int16 implGetMinute( double dDate );
sal_Int16 implGetSecond( double dDate );
sal_Int32 implGetNanoSecond(double dDate);
css::util::Date SbxDateToUNODate( const SbxValue* );
void SbxDateFromUNODate( SbxValue*, const css::util::Date& );
css::util::Time SbxDateToUNOTime( const SbxValue* );
void SbxDateFromUNOTime( SbxValue*, const css::util::Time& );
css::util::DateTime SbxDateToUNODateTime( const SbxValue* );
void SbxDateFromUNODateTime( SbxValue*, const css::util::DateTime& );
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */